メインコンテンツへスキップ

PEP 8によるPythonの命名規則

·773 文字·2 分
目次

はじめに
#

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の命名規則に沿ったコードの例を以下に示します。

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
著者
Helve
関西在住、電機メーカ勤務のエンジニア。X(旧Twitter)で新着記事を配信中です

関連記事

PythonでSQLiteを扱う
Pythonのsqlite3ライブラリを使ってSQLiteを扱う方法をまとめました。
SphinxでMarkdown拡張言語のMySTを扱う
·1768 文字·4 分
SphinxでMarkdownの拡張言語であるMyST (Markedly Structured Text) を導入する方法をまとめました。
SphinxのモダンテーマFuroを導入する
·1008 文字·3 分
Python製ドキュメント生成ツールSphinxのモダンテーマFuroの導入方法をまとめました。
Sphinxを使ったHTMLドキュメント作成
·1623 文字·4 分
ドキュメント生成ツールSphinxを導入し、HTMLファイルを生成するまでの方法をまとめました。
HTML, CSS, JavaScriptを圧縮 (minify) するPythonスクリプト
·1495 文字·3 分
HTML, CSS, JavaScriptを圧縮 (minify) して、ファイル容量を削減するPythonスクリプトを作成しました。
Condaの仮想環境をYAMLファイルに保存する
·2095 文字·5 分
Condaで構築した仮想環境をYAML形式のファイルに保存し、再構築する方法を解説する。