[流畅的Python][0][Python之禅]

第0章 Python之禅(The Zen of Python, by Tim Peters)

  • Beautiful is better than ugly.
    优美胜于丑陋(Python程序员笃信代码可以编写得漂亮而优雅)

  • 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.
    不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)

  • In the face of ambiguity, refuse the temptation to guess.
    当存在多种可能,不要尝试去猜测

  • There should be one-- and preferably only one --obvious way to do it.
    尽量找一种,最好是唯一一种明显的解决方案(如果让两个Python程序员去解决同一个问题,他们提供的解决方案应大致相同)

  • Although that way may not be obvious at first unless you’re Dutch.
    虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )

  • 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!
    命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)