[英]Python - __init__ submodule using parent package
我有一个包结构为:
parent_package/
__init__.py
module/
__init__.py
在父级__init__.py
我有:
from __future__ import division
print(3/2) # 1.5
但是,当我尝试在其子级中重用导入时,划分不会生效。 在模块的__init__.py
:
from parent_package.__init__ import division
print(3/2) # 1!
您误会了__future__
模块的工作方式。 __future__
是一个特殊的模块,内置在python解释器中, __future__
解释器解析和/或执行代码的方式。 为了使__future__
导入具有所需的效果,它的形式必须是
from __future__ import <feature>
(有关具体规格,请参见PEP236 。)
然而,除了__future__
是内置于解释模块, __future__
也是 在标准库中一个真正的模块 ! from __future__ import divison
实际上有两件事:启用新的除法行为, 并从实际的__future__
模块导入特征规范。 如果您查看导入后的division
值,将看到以下内容:
>>> from __future__ import division
>>> division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
from parent_package.__init__ import division
,您只是在导入此变量。 但是您没有启用新的部门行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.