我正在编辑一本互联网技术的书稿,《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!
命名空间是一个令人激动的伟大想法,让我们将它发扬光大。
我是简书出版合伙人书香云舍-张瑞喜,关于出版,欢迎找我。