如果您打开Python解释器,并输入"import this",如您所知,它会打印:
Tim Peters的Python之禅
美丽胜过丑陋.
显式优于隐式.
简单比复杂更好.
复杂比复杂更好.
Flat优于嵌套.
稀疏优于密集.
可读性很重要.
特殊情况不足以打破规则.
虽然实用性胜过纯洁.
错误不应该默默地传递.
除非明确沉默.
面对模棱两可,拒绝猜测的诱惑.
应该有一个 - 最好只有一个 - 明显的方法来做到这一点.
虽然这种方式起初可能并不明显,除非你是荷兰人.
现在比永远好.
虽然从未往往比好正确的现在.
如果实施很难解释,这是一个坏主意.
如果实现很容易解释,那可能是个好主意.
命名空间是一个很棒的主意 - 让我们做更多的事情吧!
在python源代码(Lib/this.py)中,这个文本是由一段奇怪的代码生成的:
s = """Gur Mra bs Clguba, ol Gvz Crgref
Ornhgvshy vf orggre guna htyl.
Rkcyvpvg vf orggre guna vzcyvpvg.
Fvzcyr vf orggre guna pbzcyrk.
Pbzcyrk vf orggre guna pbzcyvpngrq.
Syng vf orggre guna arfgrq.
Fcnefr vf orggre guna qrafr.
Ernqnovyvgl pbhagf.
Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx …Run Code Online (Sandbox Code Playgroud) 打字import this返回Tim Peters的Python之禅.但我注意到模块上有4个属性:
this.i
this.c
this.d
this.s
Run Code Online (Sandbox Code Playgroud)
我可以看到声明
print(''.join(this.d.get(el, el) for el in this.s))
Run Code Online (Sandbox Code Playgroud)
用于this.d解码this.s打印禅.
但有人可以告诉我属性this.i和属性this.c是什么?
我认为他们故意在那里 - 这个问题的答案似乎表明还有其他的笑话可以从禅宗的措辞中收集到.我想知道是否有一个参考我缺少这两个值.
我注意到Python版本之间的值不同:
# In v3.5:
this.c
Out[2]: 97
this.i
Out[3]: 25
# In v2.6
this.c
Out[8]: '!'
this.i
Out[9]: 25
Run Code Online (Sandbox Code Playgroud) python ×2