Pythonスクリプトを作成し始めてから、半年くらいになりますがここで一度Pythonをコーディングする際に守るべき記載ルールであるPEP8について確認の意味も含めてまとめておきたいと思います。
PEP8(Style Guide for Python Code)は Python の標準ライブラリに含まれているPythonコードのコーディング規約です。規約に従うことで誰が書いたコードでも書き方が統一されてすっきりです。
なお、PEP8の最初に書かれている言葉として「一貫性にこだわりすぎるのは、狭い心の現れである」がありますのでそれを頭に置いたうえでルールを守ります。
レイアウトに関するルール
- インデントはスペース4つ
- 1行の長さは最大79文字まで、長くなったらバックスラッシュとかで改行すべし
- トップレベルの関数やクラスは、2行ずつ空けて、クラス内部では、1行ずつ空けてメソッドを定義すべし
- コードは常に UTF-8(Python 2 では ASCII) を使用すべし
- import文は行を分けるべき( 1行でimport sys, os, timeとかはNG)
__all__
,__author__
,__version__
のような、モジュールレベルの “二重アンダースコア変数” (変数名の前後にアンダースコアが2つ付いている変数) は、モジュールに関する docstring の後、そしてfrom __future__
以外の あらゆるimport文の前に置くべき- 式や文中の空白文字に余計な空白文字を使うのはやめるべき
レイアウトに関するルールをまとめるとこんな感じです。スペースや空白文字はPyCharmでフォーマットするようにすれば問題ないと思います。
PyCharmについてはこちらで紹介しています。
命名規則
プログラミングにおいて複数単語に対する記載方法としては幾つか種類があります。メジャーなものとしては、アッパーキャメル記法、ローワーキャメル記法とスネーク記法、ケバブ記法という4種類の記載方法があります。
それぞれの記載方法は以下になります。
説明 | 書き方(例) | |
アッパーキャメル記法 | 単語の先頭をすべて大文字でつなぐ | AutoComplete |
ローワーキャメル記法 | 先頭の単語だけ小文字、次からの単語は大文字でつなぐ | autoComplete |
スネーク記法 | 単語の間をアンダーバーでつなぐ ※大文字の場合はアッパースネーク記法 | auto_complete |
ケバブ記法 | 単語の間をハイフンでつなぐ | auto-complete |

Pythonの命名規則については以下となります。基本的にはスネーク記法でクラス名だけアッパーキャメル記法になります。
対象 | ルール | 記法 |
パッケージとモジュール名 | 全て小文字の短い名前、アンダースコア | スネーク記法 |
クラス名 | CapWordsを使うべき | アッパーキャメル記法 |
関数名 | 小文字+アンダースコア | スネーク記法 |
メソッド名とインスタンス変数名 | 小文字+アンダースコア | スネーク記法 |
定数 | 全ての定数は大文字+アンダースコア | アッパースネーク記法 |
その他の細かいルールは以下です。
- インスタンスメソッドのはじめの引数の名前は常に
self
を使うべき - クラスメソッドのはじめの引数の名前は常に
cls
を使うべき - すべての公開されているモジュールや関数、クラス、メソッドの docstring を書くべき
- モジュールレベルの変数や、クラス変数、インスタンス変数、そしてローカル変数に対するアノテーションは、コロンの後にひとつスペースを入れるべき
まとめ
今回はPythonのコーディング規約であるPEP8についてまとめてみました。
特に複数人で開発する際にはコーディング規約は重要になりますので忘れないようにしたいですね。
Pythonのオススメ勉強方法
私がオススメするPythonの効果的な学習方法は「Udemy(ユーデミー)」によるビデオ学習です。
「Udemy」は、オンライン学習の提供サイトです。学びたい人は多くある講座の中から受講したいコースを選択することができ、動画で学べるのが特徴です。
多くあるPythonのコースの中でもオススメするPythonのコースは以下となります!!
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
このコースでは合計で28.5時間のビデオ講座があって、それらを受講するだけで、Pythonの基礎から応用まで学ぶことができます。
私も購入して受講していますが、内容としては初心者の方から上級者まで対応する幅広い内容になっています。
下手な書籍を何冊か購入するより、この動画コースを最初からじっくりと受けることで総合的なスキルを習得することができるできます。おそらくこれ以上の教材はないと思いますので、絶対おすすめです。
今回は以上となります。
コメント