JavaScriptを有効にしてください

PEP 8によるPythonの命名規則

 ·   2 min read

はじめに

PythonのPEP 8に定められた、変数などの命名規則をまとめました。

PEP 8による命名規則

対象 命名規則
変数、関数 小文字のみ。必要に応じて_で単語を区切る
定数 大文字のみ。必要に応じて_で単語を区切る
クラス、例外 CapWords方式
インスタンス変数、メソッド 小文字のみ。必要に応じて_で単語を区切る
モジュール 小文字のみ。必要に応じて_で単語を区切る
パッケージ 小文字のみ。_は非推奨

CapWords方式では、各単語の最初を大文字とします。また、CapWords方式で、頭字語(複数の単語の頭文字を大文字で繋げた単語。HTTP, CPUなど)が含まれる場合、頭字語は全て大文字とします(HTTPConnection, MultithreadCPU)。

モジュールは単一のPythonファイルを指します。例えば、my_script.pyというファイルがある場合、これがmy_scriptモジュールになります。

パッケージは複数のモジュールをまとめたものです。例えばmy_module0.pymy_module1.pyというモジュールをまとめて、my_packageというパッケージを作りたいとき、以下のフォルダ構成とします(モジュールをPythonに認識させるため、__init__.pyが必要です。また、フォルダの階層をさらに深くすることも可能)。

my_package/
    __init__.py
    my_module0.py
    my_module1.py

その他の注意点を以下に示します。

  • クラス内部でのみ使用するインスタンス変数やメソッドは_で始める(例:_get_attribute
  • Pythonの予約語を変数名に使用したい場合、最後に_を付ける(例:class_, list_

命名規則の例

PEP 8の命名規則に沿ったコードの例を以下に示します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
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)

参考

シェアする

Helve
WRITTEN BY
Helve
関西在住、電機メーカ勤務のエンジニア。X(旧Twitter)で新着記事を配信中です

サイト内検索