2
我有一個Python包,其中的實現被拆分(維護)到兩個內部子模塊中。從用戶的角度來看的包應顯示爲一個單位,雖然如此,在封裝的__init__.py
兩個子模塊與import *
進口的,如下:如何使用__init__.py中的導入*將文檔字符串導入包範圍中?
# filesystem layout:
mypkg/
__init__.py
subA.py # defines class A
subB.py # defines class B
和
# __init__.py
from .subA import *
from .subB import *
這工作按預期從包功能的角度來看:
>>> import mypkg
>>> a = mypkg.A() # works
>>> b = mypkg.B() # works
如果直接查找這些類的內聯幫助,一切都是還不錯:
>>> help(mypkg.A) # works
>>> help(mypkg.subA.A) # also works
問題是,如果我只是查找頂層包的幫助,
>>> help(mypkg)
然後從子模塊類和函數不「自願」出現在所有的(雖然從他們的變量會出現在DATA
部分)。這是預期的/正確的行爲,是否有繞過它的方法,以便用戶不必知道僅存在實現/維護方便的子模塊?
適合我:謝謝!不完全優雅和有點片狀,因爲這是不明顯的,當一個新的功能或類被添加到子模塊時,此列表需要更新...但至少它工作:) – andybuckley