Python 那么“;从uuu future uuuuuu导入barry作为FLUFL”;做
我理解这是一个内部笑话,是为了留下来(就像“Python 那么“;从uuu future uuuuuu导入barry作为FLUFL”;做,python,operators,Python,Operators,我理解这是一个内部笑话,是为了留下来(就像“来自未来导入大括号””),但它到底做什么呢?它与 Barry指的是Barry Warsaw,一位著名的Python开发人员。来自未来的导入巴里as FLUFL的基本上取代了=操作符愚人节的笑话非常有趣,因此它当前的实现非常有趣。 它从终端或通过标准输入的python3-i交互工作得非常好,但令人惊讶的是,从普通脚本或没有-i。它通过eval(…)或compile(…)以这种方式工作: exec(compile('1<>0', 'foo',
来自未来导入大括号”
”),但它到底做什么呢?它与
Barry指的是Barry Warsaw,一位著名的Python开发人员。来自未来的导入巴里as FLUFL的基本上取代了=带有
的code>操作符愚人节的笑话非常有趣,因此它当前的实现非常有趣。
它从终端或通过标准输入的python3-i
交互工作得非常好,但令人惊讶的是,从普通脚本或没有-i
。它通过eval(…)
或compile(…)
以这种方式工作:
exec(compile('1<>0', 'foo', 'single', __future__.CO_FUTURE_BARRY_AS_BDFL))
exec(编译('10','foo','single','uuuuuuuuuuuuuuuuu future\uuuuuuuuuuu.CO\uuufuture\ubarry\uas\ubdfl))
真的
比恐怖更有趣=代码>导致手指疼痛如上所述,barry是barry Warsaw,一位著名的Python核心开发人员
然而,尚未解释FLUFL
它代表“生活中的友好语言叔叔”,这是当时其他python核心开发人员的一个内部笑话。之所以启用了
语法,是因为他是想使用
运算符的主要人员谢谢。我编辑了你的答案,因为它有一个明显的错误:)更重要的是,它在Python3中启用了
语法。链接上说print
语句也回来了。当我尝试对Python3.3运行此导入时,它会崩溃,出现SIGSEGV(地址边界错误)
。可能此功能尚未维护:Pbtw——与大括号不同,它位于中。所有功能名称因此,如果您决定运行一个程序(比如doctest),并启用所有未来功能(查看列表,发现它们都是您想要的),它肯定会咬到您。这是一个很好的答案,因为它解释了这在正常脚本中“不起作用”。但我不确定最后一次是怎么回事。。。判决?格式和标点符号部分是玩笑,部分是粗心,部分是故意破坏。我就是说不出来。哦,还有,澄清一下:即使您使用-I
,在到达REPL之前执行的脚本也必须遵循正常的Python 3语法,否则会出现语法错误。如果脚本中出现语法错误,那么REPL的行为就好像从未进行过导入一样。(你只需要在REPL上再做一次,但这就不能把它放在你的脚本中了。)不过,如果脚本引发(大多数?)其他类型的异常,那也没关系;在这种情况下,当您被转储到REPL时,导入仍然有效。有趣的是,这是一种预期行为还是只是一个bug,因为没有人真正关心这个复活节彩蛋?只是在这里吹牛,但我和巴里一起参加了一个核心Python Hackathon,我们分享了一些有趣的故事:)这类似于Guido van Rossum的《活的仁慈独裁者》(BDFL)。他真是个好人:)