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()