gpt4 book ai didi

python - python中是否只有一个 "future"宇宙?

转载 作者:行者123 更新时间:2023-11-30 22:47:43 25 4
gpt4 key购买 nike

正如另一篇文章( https://stackoverflow.com/a/7075121/2706606 )中所解释的,在 python 中你可以导入 future 的东西。

例如,2/4 的计算结果为 0(因为它是整数除法)。

>>>print 2/4
0

但是如果您从 future 导入“除法”,其计算结果为 0.5

>>> from __future__ import division
>>> print 2/4
0.5

我从链接的帖子中了解到,当您使用将来的导入时,解析器会以不同的方式解析代码。

我的问题是,是否只有一个唯一的“ future ”环境可以从中获取所有这些 future 的导入?

我们如何保证 future 的导入将与 future 版本的 python 编译器向前兼容?

是否有可能在“更遥远的 future ”2/4 会评估为其他值?

最佳答案

future 的功能不会改变其含义。保证 from __future__ import x 具有以下三种行为之一:

  1. 在定义 future 行为之前的 Python 版本上,会引发异常,表明代码不兼容
  2. 在该行为成为默认行为之前的 Python 版本上,它会启用该行为
  3. 在该行为成为默认行为后的 Python 版本上,导入会被识别,但会被忽略

他们以后不会重复使用名称来表示其他含义(因为这会违反#3 的“识别但忽略”规则)。如果他们决定再次更改,例如,division,他们需要使用新名称,例如为了使其朝零除法而不是向下除法截断,他们可能会创建一个名为 truncating_division__future__ 导入。但只要 Python 存在,他们就永远不会删除除法,也不会改变其含义, per the __future__ docs :

No feature description will ever be deleted from __future__.

关于python - python中是否只有一个 "future"宇宙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40413979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com