Python_命名規則

Pythonの命名規則

Pythonの命名規則は、PEP(Python Enhancement Proposals)というコーディング規約の提案があります。

特にPython version 2~version 3では、PEP8(Style Guide for Python Code)が主流となります。


pycodestyle

pycodestyle(pep8コマンドの次世代版)ツールを用いて検査することができます。


$ pip install pycodestyle
$ pycodestyle main.py

全体的な推奨

ソースコード

  • 1レベルインデントするごとに、スペースを4つ使います。
  • 1行の長さは79文字

空白

基本的に余計な空白は置きません。

ただし、区切りとなる場合(カンマ/セミコロン/コロンの直後)には、空白を入れます。


# 良い例
if x == 4 print x, y; x, y = y, x
func(arr[1], {elem: 2})

# 悪い例
if x == 4 print x , y ; x , y = y , x
func( arr[ 1 ], { elem: 2 } )

関数名

関数名は全て小文字で記述します。

複数の単語を使う場合は、単語の区切りにアンダースコア(_)を使い、スネークケースとします。


#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# vim:fileencoding=utf-8
# coding=utf8


def my_function():
    print("my_function")


def main():
    my_function()


if __name__ == "__main__":
    main()

変数名

変数名は全て小文字で記述します。

複数の単語を使う場合は、単語の区切りにアンダースコア(_)を使い、スネークケースとします。


#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# vim:fileencoding=utf-8
# coding=utf8


def my_function(func_var):
    print(func_var)


def main():
    my_var = 1
    my_function(my_var)


if __name__ == "__main__":
    main()

定数

全て大文字で書き、必要に応じてアンダースコアを利用することもできます


# 定数名の例
MY_CONSTANT = 1

モジュール名・パッケージ名

モジュール名・パッケージ名は全て小文字で記述します。

複数の単語を使う場合は、単語の区切りにアンダースコア(_)を使いスネークケースとします。


.
├── main.py
└── my_package
    ├── __init__.py
    ├── my_module1.py
    └── my_module2.py

main.pyは以下の通りです。


#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# vim:fileencoding=utf-8
# coding=utf8

from my_package import my_module1
from my_package import my_module2


def main():
    my_module1.my_module1_function()
    my_module2.my_module2_function()


if __name__ == "__main__":
    main()

クラス名・メソッド名

クラス名は大文字始まりとして、複数の単語を使う場合は2番目以降の単語も大文字始まりとなります。

メソッド名は全て小文字・スネークケースで記述します。


#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# vim:fileencoding=utf-8
# coding=utf8


class MyClass:
    val = "This is MyClass"

    def my_method(self):
        print(self.val)


def main():
    myclass = MyClass()
    myclass.my_method()


if __name__ == "__main__":
    main()


関連ページ