我们知道,在python 2.x中,如果我们划分两个整数值,它会产生一个int.但是,如果使用from __future__ import division,我们会获得一个float值.
>>> 3/2
1
>>> from __future__ import division
>>> 3/2
1.5
>>>
>>>
>>> 3//2
1
>>> 4/3
1.3333333333333333
>>>
Run Code Online (Sandbox Code Playgroud)
所以,如果我们想在导入后想要整数,//而不是/应该使用__future__.division,但我想知道如何/再次返回整数.
有没有办法取消导入或删除以前导入的模块?
有一种方法可以在IDLE中取消导入库或模块,即使用Ctrl + F6或菜单中的选项重新启动它
mgi*_*son 10
python必须reload重新导入已经导入的模块(不应该在生产代码中使用),但是一旦导入模块,就没有办法(我知道)取消导入模块.
当然,您可以删除当前命名空间中对该模块的引用:
import module
module.foo()
del module
module.foo() #NameError, can't find `module`
Run Code Online (Sandbox Code Playgroud)
另一点是,这__future__不是一个真正的模块.它更像是告诉解析器如何表现的指令.因此,当放入文件时,它必须是那里的第一件事(在任何其他导入之前等).您可以__future__从交互式会话中的任何位置导入这一事实是一种特殊情况.
__future__看起来像一个模块但不是真的.导入它实际上会影响当前模块的编译选项.没有办法"撤消"它,因为它有效地发生在模块执行之前.
如果它是任何其他"正常"模块,有方法,但你在这里运气不好.要么处理已更改的语义,要么将需要不同编译的代码放在单独的模块中.
| 归档时间: |
|
| 查看次数: |
17346 次 |
| 最近记录: |