起源
2001年秋召开第十届International Python Conference(IPC 10,Pycon的前身),打算征集一条印在会议T恤衫上的标语,最终他们从Python社区收到了500多条投稿。并最中筛选确认为
import this
,他们选择之后觉得需要实现它,经过讨论最中定义为了由
Tim Peter
写的《The zen of 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!
译文
# 译文 转载
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
.
# 所有错误都不应该被直接忽略,除非能够被精确的捕获之后。(其中一个典型的例子就是,不建议用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!
# 命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)