
『Pythonの禅』は、 Pythonプログラミング言語の設計に影響を与える、コンピュータプログラムを書くための19の「指導原則」の集まりです。[ 1 ]これらの原則に沿ったPythonコードは、「Pythonic」と呼ばれることがよくあります。[ 2 ]
ソフトウェアエンジニアのティム・ピーターズはこの一連の原則を書き、 1999年にPythonメーリングリストに投稿した。 [ 3 ]ピーターズのリストには、Python言語のオリジナル作者であるグイド・ファン・ロッサムを指して、「グイドが埋める」ための20番目の原則が空席のまま残されていた。20番目の原則の空席はまだ埋められていない。
Peters の Zen of Python は、言語の公式Python 拡張提案のエントリ番号 20 として含まれ、パブリック ドメインに公開されました。[ 4 ]また、 Pythonインタープリタのイースター エッグとしても含まれており、と入力することで表示できます。[ 1 ] [ 4 ] [ a ]importthis
2020年5月、バリー・ワルシャワ(GNU Mailmanの開発者)はそれを歌の歌詞として使用した。[ 5 ] [ 6 ]
原則は以下のとおりです。[ b ]
- 美しいものは醜いものより優れている。
- 明示的な方が暗黙的なよりも良い。
- シンプルであることは、複雑であることよりも優れている。
- 複雑である方が、入り組んでいるよりも良い。
- 入れ子構造よりもフラット構造の方が良い。
- 疎な方が密なよりも良い。
- 読みやすさは重要だ。
- 特別なケースであっても、規則を破るほど特別なケースではない。
- 実用性は純粋さに勝る。
- エラーは決して黙って見過ごされてはならない。
- 明示的にミュートされない限り。
- 曖昧な状況に直面したときは、推測する誘惑に抵抗しなさい。
- それを行うには、明白な方法が一つだけあるべきであり、できれば一つだけであるべきである。[ c ]
- オランダ人でない限り、その方法は最初は分かりにくいかもしれない。
- 今がチャンスだ。
- とはいえ、今よりずっと良い場合も多い。[ d ]
- 実装方法を説明するのが難しいなら、それは良いアイデアではない。
- 実装方法が説明しやすいのであれば、それは良いアイデアかもしれない。
- 名前空間は本当に素晴らしいアイデアだ 。もっと活用しよう!
原則の1つである「物事を行うには、1つ、できれば1つの明白な方法があるべきである」は、「Pythonic」な方法として参照できます。[ 8 ]「Pythonic」の公式な定義は次のとおりです。[ 2 ] [ e ]
Python言語の最も一般的な慣用表現に忠実に従ったアイデアやコード。他の言語に共通する概念を用いてコードを実装するのではなく、Python言語の慣用表現に忠実に従う
for。例えば、Pythonでは、反復可能なオブジェクトのすべての要素をループ処理するために`if`文を使うのが一般的な慣用表現である。他の多くの言語にはこのような構文がないため、Pythonに慣れていない人は代わりに数値カウンターを使うことがある。for i in range ( len ( food )): print ( food [ i ])より簡潔でPythonらしい方法とは対照的に:
食品のピースの場合:(ピース)を印刷します
理解しにくいコードや、他のプログラミング言語からの粗雑な書き起こしのように見えるコードは、非Python的であると呼ばれます。[ 9 ]
『Pythonの禅』の公開以来、開発者の間でその有効性と実際の使用状況について研究が行われてきました。初心者と経験豊富なPythonプログラマーの間で解釈に違いがあるにもかかわらず、さまざまなスキルを持つ13人のPythonプログラマーへのインタビューでは、『Pythonの禅』が「開発者がコードを書いたり話したりする方法に良い影響を与えている」ことが示されています。[ 8 ]研究者たちはこのケーススタディを拡張してGitHubリポジトリでのPythonイディオムの使用を調査し、「Pythonicイディオム」 [ f ]の使用が時間とともに増加していることを発見しました。[ 10 ]『Pythonの禅』に沿ったPythonコードを書くことで、 Pythonプログラムのメモリと実行時間を節約できる可能性があります。[ 11 ] Pythonicコードで書きたいという願望から、プログラマーがこの目標を達成するのに役立つリファクタリングツールが開発されました。[ 12 ] [ 13 ]
{{cite book}}: CS1 maint: bot: 元の URL の状態が不明です (リンク)