我正在編輯一本互聯網技術的書稿,《Python編程基礎與HTTP接口測試》。這本書不厚,因為作者說,我想教給大家的是一種學習方法,而不是語句本身。
Python是一款純粹的自由軟件,每個人都可以為它做貢獻。我在書里發現有一段非常有意思的Python之禪。這段禪語,不是Python的創始人寫的,是一個叫Tim Peter寫的,被官方認可為Python的編程原則。
本書作者阿奎說:Python之禪,體現了Python這門語言的設計哲學,其中的很多觀點對于日常的編程也是很有指導意義的。
讀完這些禪語,我覺得它不僅僅與編程有關,更與人生有關。這些話更讓我覺得,每一個優秀的“攻城獅”和“程序媛”,原來都是哲學家。反之,如果沒有經過深入的哲學和人文科學的學習和積累,一個只愛理工科的人,也不容易成為優秀的編程者。
來,讀一下這些禪語吧!他們一點不深奧,但是真的很哲學。
The Zen of Python, by Tim Peters
Python之禪,蒂姆?彼得斯
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.
所有錯誤都不應該被直接忽略,除非能夠被精確的捕獲之后。(其中一個典型的例子就是,不建議用Exception:pass來直接忽略所有異常。)
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.
當面對不明確的情況時,要拒絕去猜測的誘惑。應該有一種,最好是唯一一種,顯而易見的解決方案。盡管起初,那種解決方案可能并不是那么顯而易見,因為你不是Python 之父(這里的Dutch是指Python之父Guido Van Rossum,他是荷蘭人。)
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!
命名空間是一個令人激動的偉大想法,讓我們將它發揚光大。
我是簡書出版合伙人書香云舍-張瑞喜,關于出版,歡迎找我。