コメント記述も厳格Pythonのコード規約PEP8とは
Pythonは、プログラミングの初心者にもプログラミングを習得しやすい言語だと言われています。初心者にPythonをおすすめする理由の一つに、「コードが読みやすい」ということがあります。
誰が書いても、同じようなコードになるということは非常にわかりやすいという反面、コードの書き方が厳密に規定されるということでもあります。
実は、それこそがPythonのコードが読みやすい理由のひとつです。
コーディング規約に沿っているとさらに読みやすいPython
Pythonは公式のコーディング規約が定められていて、その規約はかなり細かく、厳密に決められています。Pythonのコーディング規約を説明する前に、まずコーディング規約とは何か?というところから説明しましょう。
コーディング規約とは
コーディング規約とは、コードレイアウトや命名規則、設計方法などを定めたもので、コードの書き方のガイドラインとも言えるものです。
Pythonは、誰が書いても読みやすく作られている言語ですが、コーディング規約に沿従わずにコードを書くとやはり読みにくいコードになってしまいます。
コーディング規約に従えば、一貫性が保たれ、誰にでも読みやすいコードを書くことができるというわけです。
コーディング規約は、複数人でプログラムを書いたりする時にあらかじめチームで決めることもありますが、Pythonは公式のコーディング規約があるのでそれを覚えた方が良いでしょう。
Pythonのコーディング規約
Python公式のコーディング規約「PEP8」と呼ばれます。他にもGoogleが定めた「Google Python Style Guide」もあります。
PEP8のコーディング規約はどんなもの?
PEP8のコーディング規約については、公式サイトと公式サイトを日本語に翻訳したサイトがあるので、詳細については公式サイトを参照してください。
では、PEP8のコーディング規約は一体どのようなものなのでしょうか。
PEP8コーディング規約の特徴
PEP8のコーディング規約の一番初めにはこんな記述があります。
「一貫性にこだわりすぎるのは、狭い心の現れである」
コーディング規約は、コードの一貫性を保つための決まりですが、それに沿わない場合もありえるということです。規約を守るのも重要だけど規約に振り回されるのも良くないということでしょう。
・インデントについて
PEP8ではインデントについて細かく決められています。
インデントは、タブではなくスペース4つが推奨されています。
また、コードの読みやすさを考慮して1行は79文字までにすることが推奨されています。
・空行
関数やクラスの定義は2行ずつ空けることや、クラス内の関数の定義は1行ずつ空けることなどが決まりとなっています。
・import
import文、複数のモジュールの読み込みがある場合は、モジュールごとに1行使って書くことが推奨されます。カンマで区切って1行で済ませるのはよろしくないということです。
なんと、コメント文にもコーディング規約が
かなり詳細まで規定されているPEP8コーディング規約ですが、なんとコメント文にまで規約が存在します。ちなみに、PEP8では全て英語で書くことが推奨されていますので、コメント文も英語で書くのが正しいやり方です。
・インラインコメント
コードの後にコメントを記載する場合、コードとコメントの間は少なくとも2つのスペースを置くことが推奨されます。
コードとコメントの間には適当な距離が必要です。コメントの位置を合わせるためなら3つ以上のスペースも許されます。
・ブロックコメント
また、ブロックコメントは「#」のあとにスペースが1つと決まっています。ただしインデントのために「#」のあとにスペースを2つ以上入れるのはOK
・トリプルクォートによるブロックコメント
「”’」や「”””」といったシングルクォートやダブルクォートを3つ繋げたものをブロックコメントとして利用する場合もありますが、その場合にはインデントが合っていないといけません。
このように、PEP8には、コメントの書き方にまで規約があるのです。どれほど細かい規約かがわかるでしょう。
Pythonのコードの読みやすさの原点とは
Pythonは言語自体がコード量が少なくてすみ可読性の高いものですが、さらにそれを読みやすくするための厳格なルールが存在しています。
PythonにはPEP8のコード規約に沿っているかをチェックするツールなどもあるので、Pythonを学習する際には、PEP8も同時に覚えて、読みやすいコードを書けるようになってみてはいかがでしょうか。
▼キャパの公式Twitter・FacebookではITに関する情報を随時更新しています!
建設・土木業界向け 5分でわかるCAD・BIM・CIMの ホワイトペーパー配布中!
CAD・BIM・CIMの
❶データ活用方法
❷主要ソフトウェア
❸カスタマイズ
❹プログラミング
についてまとめたホワイトペーパーを配布中
デジタルツインと i-Constructionについての ホワイトペーパー配布中!
❶デジタルツインの定義
❷デジタルツインが建設業界にもたらすもの
❸i-Constructionの概要
❹i-Constructionのトップランナー施策