簡體   English   中英

Python-使用父包的__init__子模塊

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM