Python 中的那些官方彩蛋

最近比较忙,都没怎么碰过博客,刚刚发现好像已经有将近两个月没有更新了,赶紧过来水一篇压压惊。

彩蛋一:antigravity

antigravity 翻译过来是反重力、反引力的意思,在 Python 中 import antigravity 会自动打开一个 Python 的经典 XKCD 漫画页面:https://xkcd.com/353/

XKCD 是由兰德尔·门罗(Randall Munroe)所绘制的网络漫画,他给作品的定义是一部“关于浪漫、讽刺、数学和语言的网络漫画”。上面的这幅漫画就是在表现 Python 的简单易用,飞一般的感觉,翻译如下:

A:你在飞!怎么做到的?
B:Python!我昨晚刚刚学会了 Python。一切都变得如此简单!写一个 Hello World 程序只要一行代码 print “Hello World!” 就搞定了!
A:什么情况?呃……动态类型?泛空格符?
B:来加入我们吧,有了 Python,编程再次变得有趣。这是一个全新的世界!
A:但是你到底是怎么飞在天上的?
B:我只是输入了“import antigravity”命令而已。
A:就这样?
B:我还把药柜中的药嗑了个遍……但我觉得还是 Python 的原因。

这个模块是 Python 开发人员发布的少数复活节彩蛋之一。不止如此,在这个复活节彩蛋中还有另一个彩蛋:如果你看一下该模块的代码,就会发现其中还有一个函数实现了另一则 XKCD 漫画中的 geohashing 算法

彩蛋二:this

在 Python 标准库中有一个叫做 this 的模块,导入这个模块会输出著名的“Python 之禅”的内容,除此之外没有任何其他功能,如下图:

这是一个关于 Python 之禅的复活节彩蛋(PEP 20),有兴趣的可以自己去看看它的实现代码。有趣的是,这个输出 Python 之禅的代码似乎自己违反了 Python 之禅。

彩蛋三:__future__

在 Python 中 __future__ 模块通常会提供一些未来版本的功能,比如 from __future__ import print_function 可以让你在 Python2 中使用 Python3 的 print()

如果你不喜欢在 Python 中使用空格来表示作用域,试试导入 C 语言风格的 {} ?使用代码 from __future__ import braces (大括号的英文为 braces),很遗憾,你会得到如下报错:SyntaxError: not a chance,没有机会这样做。

这是一个表达社区对此类问题态度的复活节彩蛋。不要想着这样做了,没有机会的。