はじめに #
PythonのPEP 8に定められた、変数などの命名規則をまとめました。
PEP 8による命名規則 #
| 対象 | 命名規則 |
|---|---|
| 変数、関数 | 小文字のみ。必要に応じて_で単語を区切る |
| 定数 | 大文字のみ。必要に応じて_で単語を区切る |
| クラス、例外 | CapWords方式 |
| インスタンス変数、メソッド | 小文字のみ。必要に応じて_で単語を区切る |
| モジュール | 小文字のみ。必要に応じて_で単語を区切る |
| パッケージ | 小文字のみ。_は非推奨 |
CapWords方式では、各単語の最初を大文字とします。また、CapWords方式で、頭字語(複数の単語の頭文字を大文字で繋げた単語。HTTP, CPUなど)が含まれる場合、頭字語は全て大文字とします(HTTPConnection, MultithreadCPU)。
モジュールは単一のPythonファイルを指します。例えば、my_script.pyというファイルがある場合、これがmy_scriptモジュールになります。
パッケージは複数のモジュールをまとめたものです。例えばmy_module0.pyとmy_module1.pyというモジュールをまとめて、my_packageというパッケージを作りたいとき、以下のフォルダ構成とします(モジュールをPythonに認識させるため、__init__.pyが必要です。また、フォルダの階層をさらに深くすることも可能)。
my_package/
__init__.py
my_module0.py
my_module1.py
その他の注意点を以下に示します。
- クラス内部でのみ使用するインスタンス変数やメソッドは
_で始める(例:_get_attribute) - Pythonの予約語を変数名に使用したい場合、最後に
_を付ける(例:class_,list_)
命名規則の例 #
PEP 8の命名規則に沿ったコードの例を以下に示します。
class TestClass:
def __init__(self, foo):
self.foo = foo
def my_method(self, bar, baz):
return self.foo*(bar+baz)
def my_function(ham, egg):
return ham-egg
if __name__=="__main__":
COEFFICIENT = 42
hoge = TestClass(COEFFICIENT)
x = hoge.my_method(0, 1)
x = my_function(x, 8)