はじめに
ここでは、Pythonのコーディング規約について解説します。
PEP8で定められたコーディング規約
Pythonでは、PEP8というコーディング規約が定められています。
PEP8で定められている概要について以下に示します。
import文
import文では、import os, sys
などとせず以下のように複数行に分けるようにします。
また、標準ライブラリ、サードパーティ製ライブラリ、ローカルのモジュール等は区別できるよう1行の空白行を入れるようにします。
import os
import sys
from django.utils import timezone
from my_app.models import User
文中の空白文字
a = 1
b = a + 2
list_nums = [a, b]
dict_nums = {'a': a, 'b': b}
=
の前後には半角スペースを入れ、リストや辞書などの,
の後にも半角スペースを入れます。
また、辞書の:
の後にも半角スペースを入れます。
インデント
if
文やfor
文、関数やクラス定義の際には、:
の後の行は半角スペース4つ(およびその倍数)分だけインデントして書き始めます。
if True:
print("It's true.")
空白行
トップレベルの関数やクラス定義の前には、2行空けるようにします。
クラス内のメソッドの場合は1行空けます。
def my_func():
return 'my_func'
class MyClass():
name = my_class
def print_name(self):
return self.name
1行の文字数
1行の文字数は基本的に79文字以下にします。
docstringの場合は72文字以下にします。
Flake8を用いたチェック
ソースコードがPEP8に従っているかチェックするツールとして、flake8
があります。
以下のコマンドで実行することができます。
$ flake8 ファイル名.py
実行すると、ソースコードのどの部分がどのようなコーディング規約に合っていないかを表示してくれます。
まとめ
ここでは、Pythonのコーディング規約について解説しました。
Pythonは可読性を重視する言語ですので、他の人が読んでも分かりやすいコードを書くのに不可欠です。