【发布时间】:2012-09-11 22:25:16
【问题描述】:
我们知道,在 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
>>>
所以,如果我们在导入__future__.division 后想要整数,应该使用// 而不是/,但我想知道如何让/ 再次返回整数。
有没有办法取消导入或删除之前导入的模块?
有一种方法可以在 IDLE 中取消导入库或模块,即使用 Ctrl+F6 或菜单中的选项重新启动它
【问题讨论】:
-
@NedBatchelder 这正是我的问题。
-
请不要再发布同样的问题,@Marslo。如果您没有得到好的答案,请尝试通过添加更多细节或澄清问题来改进您现有的问题。
-
不管怎样,你应该在任何需要整数除法的时候使用
//。如果您使用/,您的代码应该足够健壮以处理整数或真除法,或者您应该使用__future__,这样您就可以确定您使用的是真除法。 -
即使在 __future__ "modules" 被导入之后,也没有办法删除它们 - 即使是
del division; from sys import modules; del modules['__future__']。我认为此导入会覆盖解释器中的某些内容或其他内容。但是,对于其他标准导入,删除(尽管这是有风险的,几乎永远不应该这样做)模块可以由deletingsys.modules[MODULE_NAME]完成
标签: python