Pythonは初心者にとって優しい言語と言われることがありますが、Pythonの心得を知っておく必要があります。
根底:Pythonic
Pythonicと呼ばれる言葉もあります。Pythonの設計に関してはこのPythonicという概念が根底にあるので言葉として覚えておくと良いです。
One reason for the high readability of Python code is its relatively complete set of Code Style guidelines and “Pythonic” idioms.
https://docs.python-guide.org/writing/style/
PEP: 8
ペップエイトというPythonのコーディング規約があります。
それなりの量があるのですが一言で言うと、「可読性が最も大事である」となります。
一貫性にこだわりすぎるのは、狭い心の現れである
https://pep8-ja.readthedocs.io/ja/latest/#id3
コードは書くよりも読まれることのほうが多い。そのため、読まれるという部分が優先されなくてはならない。そのためには、このPEP: 8を無視することも良いと言っています。
特定のガイドラインを無視する正当な理由がいくつか考えられます:
1.ガイドラインに従うとコードが読みにくくなること。このPEPに準拠したコードを読んでいた人にとっても読みにくくなったのならなおさらです。
2.(多分歴史的な理由で) ガイドラインに従っていない周囲のコードと一貫性を保つため — しかし、これは誰かの汚いコードを綺麗にするチャンスでもあります。
3.問題になっているコードが、ガイドラインが出てくるより前に書かれたもので、 それに準拠させること以外にコードを変更する理由がないとき。
4.スタイルガイドで推奨されている機能をサポートしていない古いバージョンの Python と互換性を保つ必要がある場合。
インデントはスペース 4つ
タブよりスペースのほうが望ましい。
シングルクォートとダブルクウォートは任せる
シングルクォート ” と、ダブルクウォート “” で囲まれた文字列は同じ意味なので、どちらかを推奨する立場は示さないと言っています。
それぞれのプロジェクトでルールを決めて守ってくれというスタンスです。
コード中の余計な空白はやめる
良い: spam(ham[1], {eggs: 2})
悪い: spam( ham[ 1 ], { eggs: 2 } )
末尾のカンマは基本任意だが混乱は避けるように
末尾のカンマは基本任意で、要素数が1つのタプルを作るときは必須。
良い
FILES = [
'setup.cfg',
'tox.ini',
]
initialize(FILES,
error=True,
)
悪い
FILES = ['setup.cfg', 'tox.ini',]
initialize(FILES, error=True,)
コメントは複数の完全な文で書く
インラインコメント は控えめに。
例
x = x + 1 # 境目を補う
ブロックコメントは #とスペース1つ。
例
# eto.pyで定義した、eto_command関数を利用できるようにする。
from eto import eto_command
命名規則
最重要は、実装よりも使い方を示している名前にすべきということ。
それ以外の細かいものはここを確認しましょう。
基本的には PEP: 8 に従って進める
コーディング規約が絶対ではないですが、共通で認知されたものとして、共通のルールとして存在しているPEP: 8に原則従ってコーディングを進めるべきです。
更にPythonの思想が「可読性が最も大事である」です。ある程度のルールに沿った上で可読性の高いコードを書いていくことがPythonicということなので初学者として覚えておきたい部分です。