那么“from __future__ import barry_as_FLUFL”到底是做什么的?

问题描述 投票:0回答:4

我知道这是一个应该保留的内部笑话(就像“

from __future__ import braces
”),但它到底有什么作用?

python operators
4个回答
97
投票

PEP 0401:BDFL 退休

有关

Barry 指的是著名 Python 开发者 Barry Warsaw。

from __future__ import barry_as_FLUFL
基本上用
!=
替换了
<>
运算符。


41
投票

如上所述,barry 是 Barry Warsaw,著名的 Core Python Dev 然而,FLUFL还没有得到解释

它代表“Friendly Language Uncle For Life”,这是当时其他 Python 核心开发人员之间的一个内部笑话。之所以启用

<>
语法,是因为他是第一个想要使用
<>
运算符

的人

20
投票

愚人节笑话PEP 0401真的很有趣,所以它目前的实施。 它可以从终端或通过标准输入的

python3 -i
交互地工作得非常好,但令人惊讶的是不是从普通脚本或没有
-i
。它通过
eval(...)
compile(..)
工作,这样:

exec(compile('1<>0', 'foo', 'single', __future__.CO_FUTURE_BARRY_AS_BDFL))
True

0
投票

为了完整起见,以下是交互式会话的输出:

>>> from __future__ import barry_as_FLUFL
>>> 1 != 2
  File "<stdin>", line 1
    1 != 2
       ^
SyntaxError: with Barry as BDFL, use '<>' instead of '!='
>>> 1 <> 2
True
>>> 1 <> 1
False
© www.soinside.com 2019 - 2024. All rights reserved.