結論:
Zen of Python(PEP 20)は、Pythonの設計哲学を示す19の格言で構成されています。
これらは「美しさ」「明示性」「単純さ」「可読性」を軸にした考え方で、Python文化の核心です。
全19格言リスト(原文+日本語訳)
- Beautiful is better than ugly.
美は醜に勝る。 - Explicit is better than implicit.
明示は暗黙に勝る。 - Simple is better than complex.
単純は複雑に勝る。 - Complex is better than complicated.
複雑は込み入ったものに勝る。 - Flat is better than nested.
平坦はネストより勝る。 - Sparse is better than dense.
疎は密より勝る。 - Readability counts.
可読性は重要である。 - Special cases aren’t special enough to break the rules.
特別な場合もルールを破る理由にはならない。 - Although practicality beats purity.
しかし、実用性が純粋性に勝る。 - Errors should never pass silently.
エラーは黙って通り過ぎてはならない。 - Unless explicitly silenced.
ただし明示的に無視される場合を除く。 - In the face of ambiguity, refuse the temptation to guess.
曖昧さに直面したとき、推測したくなる誘惑を拒否せよ。 - There should be one– and preferably only one –obvious way to do it.
やり方はひとつ(できれば唯一の明白な方法)であるべきだ。 - Although that way may not be obvious at first unless you’re Dutch.
ただし、その方法は最初は明白でないかもしれない(もしあなたがオランダ人でないなら)。 - Now is better than never.
今やることは、やらないより勝る。 - Although never is often better than right now.
ただし「今すぐ」は「やらない」より悪い場合がある。 - If the implementation is hard to explain, it’s a bad idea.
実装が説明しづらいなら、それは悪いアイデアだ。 - If the implementation is easy to explain, it may be a good idea.
実装が説明しやすいなら、それは良いアイデアかもしれない。 - Namespaces are one honking great idea — let’s do more of those!
名前空間は素晴らしいアイデアだ — もっと活用しよう!
格言の全体像
これらの格言を整理すると、大きく4つの柱に分類できます。
- 美とシンプルさ
→ (1) 美 vs 醜、(3) 単純 vs 複雑、(4) 複雑 vs 込み入ったもの - 明示性と可読性
→ (2) 明示 vs 暗黙、(7) 可読性重視、(12) 曖昧さを避ける - ルールと実用性のバランス
→ (8) 特別扱いはしない、(9) 実用性は純粋性に勝る、(10-11) エラー処理の原則 - 判断基準と設計思想
→ (13-14) 方法はひとつ、(15-16) タイミングの指針、(17-18) 実装の説明可能性、(19) 名前空間の推奨
なぜ全体像を押さえるのか?
- 一つひとつ覚えるのは大変でも、全体像をざっと掴むことで
「Pythonらしい判断基準」が感覚的に理解できる - レビューや設計で「この格言に沿っているか?」とチェックリストのように使える
- 初学者はまず「全部を暗記する」のではなく、雰囲気を掴むことから始めるのがポイント
まとめ
- Zen of Python は 19個の格言で構成される
- 大きくは「美とシンプルさ」「明示性と可読性」「ルールと実用性」「判断基準と設計思想」の4つに整理できる
- 全体像を知ることは、個々の格言を理解する前の大事なステップ