趣闻|Python之禅(The Zen of Python)

在Python解释器中输入“import this”会发生什么?若是你不知道这个彩蛋,推荐继续阅读这篇文章。python

2001年秋,Foretec(一家会议组织公司)正在准备召开第十届International Python Conference(IPC 10,Pycon的前身),Foretec打算征集一条印在会议T恤衫上的标语,最终他们从Python社区收到了500多条投稿。编程

Foretec邀请了Python的核心开发Guido, Fred, Jeremy,Tim Peter,Barry 等来担任评审。评审委员们从投稿中过滤出了130多条后就一直没有进展,直到会议快要召开时他们也没有肯定最终标语。ui

会议就要开始的前几天,到了评审们不得不作出决定的时候了。因而由Tim Peter和Barry 两人轮流评审,每人每次淘汰一半留下一半,直到最后只剩一条。this

最终,“import this”被选了出来,你们对"import this"很是满意。可是当选择了这条之后,他们意识到他们必需要实现它。通过简单的讨论后,“import this”的被定为输出Tim Peter写的《The Zen of Python》——Python编程和设计的指导原则。spa

Time Peter建议在代码中对输出的内容作一些简单的混淆,因而他们就用rot13对打印内容进行了一些处理。若是你打开lib下的this.py你就会发现下面内容。翻译

其实,rot13就是凯撒密码的一种,每一个字母变换为它后面的第13个字母。例如A变换为它后面的第13个字母N,全部字母变换关系以下图:设计

等到IPC 10结束后,做为庆祝此次会议圆满结束的活动之一就是他们悄悄的把代码提交到Python 2.2.1。过了一段时间,才逐渐有人发现“import this”这个彩蛋。code

下面是《The Zone Of Python》的中文翻译。这些准则不单单适用于Python,也适用于其它任何语言,值得咱们细细品读。接口

Python之禅, by Tim Peters

优美胜于丑陋(Python以编写优美的代码为目标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格类似)
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(若是复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
可读性很重要(优美的代码是可读的)
即使假借特例的实用性之名,也不可违背这些规则(这些规则至高无上) 
不要包容全部错误,除非你肯定须要这样作(精准地捕获异常,不写except:pass风格的代码) 当存在多种可能,不要尝试去猜想 而是尽可能找一种,最好是惟一一种明显的解决方案(若是不肯定,就用穷举法) 虽然这并不容易,由于你不是Python之父(这里的Dutch是指Guido) 作也许好过不作,但不假思索就动手还不如不作(动手以前要细思量) 若是你没法向人描述你的方案,那确定不是一个好方案;反之亦然(方案测评标准) 命名空间是一种绝妙的理念,咱们应当多加利用(倡导与号召)
相关文章
相关标签/搜索