“from __future__ import barry_as_FLUFL”具体做什么?

92 投票
3 回答
23504 浏览
提问于 2025-04-16 05:59

我明白这是个内部玩笑,应该一直保留(就像“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 这行代码的意思是把 != 这个符号换成 <>

撰写回答