gpt4 book ai didi

python - 导入后如何从 __future__ 中删除/取消导入符号?

转载 作者:太空狗 更新时间:2023-10-29 21:18:50 28 4
gpt4 key购买 nike

在 python 2.x 中,两个整数相除返回一个整数。但是,如果您使用

from ___future___ import division

你可以获得一个浮点值:

>>> 3/2
1
>>> from __future__ import division
>>> 3/2
1.5
>>>
>>>
>>> 3//2
1
>>> 4/3
1.3333333333333333
>>>

import之后,你必须使用//而不是/来做整数除法。我怎样才能恢复 import 以便 / 再次进行整数除法?

最佳答案

__future__ 导入是特殊的,无法撤消。您可以阅读他们的行为 here .

以下是一些相关的部分:

A future statement is recognized and treated specially at compile time: Changes to the semantics of core constructs are often implemented by generating different code. It may even be the case that a new feature introduces new incompatible syntax (such as a new reserved word), in which case the compiler may need to parse the module differently. Such decisions cannot be pushed off until runtime.
...
A future statement typed at an interactive interpreter prompt will take effect for the rest of the interpreter session.

由于 __future__ 语句是在编译时而不是运行时处理的,因此没有运行时方法来恢复已更改的行为。

对于普通模块,您可以删除或取消导入模块,方法是删除您从命名空间导入的任何内容,并删除该导入在 sys.modules 中的条目。 (根据用例,第二部分可能不是必需的,它所做的只是在再次导入时强制重新加载模块)。

关于python - 导入后如何从 __future__ 中删除/取消导入符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12498866/

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