“from __future__ import barry_as_FLUFL”具体做什么?
我明白这是个内部玩笑,应该一直保留(就像“from __future__ import braces
”一样),但它到底是干什么的呢?
3 个回答
19
四月愚人节的玩笑 PEP 0401 真的是个很有趣的事情,而且它现在的实现也很搞笑。它在终端中交互使用时效果很好,或者通过 python3 -i
从标准输入运行时也很顺利,但奇怪的是,在普通脚本中或者不加 -i
的情况下就不行了。它的工作原理是通过 eval(...)
或者 compile(..)
这样的方式来实现的:
exec(compile('1<>0', 'foo', 'single', __future__.CO_FUTURE_BARRY_AS_BDFL))
True
39
如上所述,barry指的是Barry Warsaw,他是一个非常有名的核心Python开发者。
不过,FLUFL这个词还没有解释清楚。
它的意思是“终身友好的语言叔叔”,这是当时其他Python核心开发者之间的一个内部玩笑。之所以能使用<>
这种语法,是因为他是最想使用<>
这个操作符的人。
96
这和 PEP 0401: BDFL退休 有关。
这里提到的Barry是Barry Warsaw,他是一个很有名的Python开发者。from __future__ import barry_as_FLUFL
这行代码的意思是把 !=
这个符号换成 <>
。