- Python編程從新手到高手
- (美)賈森·C.麥克唐納
- 679字
- 2025-08-07 17:53:06
1.5 Python之禪
1999年,Python官方郵件列表上開始了一場關于編寫一些通用化的指導原則的討論。Tim Peters是社區的一位突出成員,他玩笑式地以類似于詩歌的方式提出了19條原則作為大綱,并留下了第20個位置請Guido van Rossum來完成(但他從未完成過)。
其余的社區成員很快就把這個總結視為對Python哲學的一個很好的概述,最終將其整體作為Python之禪(The Zen of Python)。整個文本則作為PEP 20由Python官方發布。
這些原則如下[2]。
[2] 譯者注:從2005年開始,Python中國社區翻譯迭代了十多版Python之禪,目前這個版本的主要貢獻者是《編寫高質量代碼:改善Python程序的91個建議》的作者賴勇浩。
優雅好過丑陋。
顯式好過隱式。
簡單好過復合。
復合好過復雜。
扁平好過嵌套。
稀疏好過密集。
可讀性很重要。
即使要為了實用性而犧牲純粹性,
特例也并不特殊到足以破壞規則。
不應悄悄放過錯誤,
除非確定需要這樣。
面對太多可能,不要嘗試猜測。
應該有一種(且最好只有一種)明顯的方式來做到這一點。
雖然這并不容易,畢竟你不是那位荷蘭人[3]。
[3] 譯者注:“那位荷蘭人”指的是Python的創造者Guido van Rossum,他是荷蘭人。
雖然一直不做總是要好過匆忙去做,
但是現在就做還是要好過永遠不做。
若實現方案很難解釋,那它肯定不是個好方案;
若實現方案很好解釋,那它有可能是個好方案。
命名空間是個絕妙想法——我們應該多使用它!
這些原則是開放的,可以解釋為不同的意思,有些人甚至認為Tim Peters在寫Python之禪時是在開玩笑。但是在這個過程中,我學到了一個很重要的道理,那就是對Python開發者而言,“開玩笑”和“認真”之間的界限是非常細微的。
在任何情況下,Python之禪都是討論Python最佳實踐的好地方,許多開發者(包括我自己)經常會回到這里。在本書中,我也會經常提到它。
- 解構產品經理:互聯網產品策劃入門寶典
- Maven Build Customization
- Android Development with Kotlin
- Android 9 Development Cookbook(Third Edition)
- Java:Data Science Made Easy
- UI智能化與前端智能化:工程技術、實現方法與編程思想
- 前端架構:從入門到微前端
- QGIS:Becoming a GIS Power User
- AppInventor實踐教程:Android智能應用開發前傳
- ExtJS高級程序設計
- 響應式架構:消息模式Actor實現與Scala、Akka應用集成
- Getting Started with Polymer
- HTML5與CSS3權威指南
- Java Web動態網站開發(第2版·微課版)
- Microsoft XNA 4.0 Game Development Cookbook