❏ 站外平台:

Python 之禅

作者: Linux中国 Wxy

| 2021-02-17 14:24      

Python 之禅Zen of Python最早由 Tim Peters 于 1999 年发表于 Python 邮件列表中,它包含了影响 Python 编程语言设计的 19 条软件编写原则。在最初及后来的一些版本中,一共包含 20 条,其中第 20 条是“这一条留空(...)请 Guido 来填写”。这留空的一条从未公布也可能并不存在。

Python 之禅作为一个信息条款也被录入 Python 增强建议Python Enhancement Proposals(PEP)的第 20 条,在 Python 语言的官方网站也能找到

此外,关于 Python 之禅,还有一件趣事。在 2001 召开第十届国际 Python 峰会(IPC 10,Pycon 的前身)前夕,会议主办方希望定制一件 T 恤,并绞尽脑汁地从投稿的标语中选择了一条 “import this”。然后,他们决定将这个语句实现在 Python 解释器中,于是将 Python 之禅的内容进行简单加密后放入到了 Python 2.2.1 中的 this.py 库当中。如果你在 Python 的解释器中输入 import this ,就会显示出来:

>>> import this;
The Zen of Python, by Tim Peters

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!

作为 Python 之禅系列文章的总结,我在下面重新整理并链接了之前的各篇文章。对于 Python 之禅的理解大家各有不同,目前也有几个不同的中文翻译版本。为了避免雷同,我们在翻译这系列文章时有意没有参考现有的 Python 之禅中文译本。因此,这里是我们自行翻译选定的译本,可能在理解上有不到位的地方,也可能文字润色不够精要,大家也可以参考其他的译本形成你的理解和润色版本。

  1. 美观胜于丑陋Beautiful is better than ugly.
  2. 明确胜于隐晦Explicit is better than implicit.
  3. 简单胜过复杂Simple is better than complex.
  4. 复杂胜过错综复杂Complex is better than complicated.
  5. 扁平胜过嵌套Flat is better than nested.
  6. 稀疏胜过密集Sparse is better than dense.
  7. 可读性很重要Readability counts.
  8. 特殊情况不足以违反规则Special cases aren't special enough to break the rules.
  9. 虽然,实用性胜过纯洁性Although practicality beats purity.
  10. 错误绝不应该悄悄传递Errors should never pass silently.
  11. 除非显式消除Unless explicitly silenced.
  12. 面对歧义In the face of ambiguity, 要拒绝猜测的诱惑refuse the temptation to guess.
  13. 尽量找一种There should be one - 最好是唯一一种明显的解决方案and preferably only one - obvious way to do it.
  14. 虽然这种方式一开始可能并不明显Although that way may not be obvious at first. (除非你是荷兰人)unless you're Dutch.
  15. 现在有总比永远没有好Now is better than never.
  16. 虽然将来总比现在好Although never is often better than right now.
  17. 如果一个实现难以解释If the implementation is hard to explain, 那就是个坏思路it's a bad idea.
  18. 如果一个实现易于解释 If the implementation is easy to explain, 那它可能是一个好思路it may be a good idea.
  19. 命名空间是一个非常棒的想法Namespaces are one honking great idea— 让我们做更多的命名空间!let's do more of those!


最新评论


返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。