[英]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.