我有一個非常複雜的包樹就像另一個包Python的複雜分裝進口
A\
B\
a.py
b.py
c.py
C\
a.py
b.py
c.py
我希望能夠做import A
和訪問所有的子包,子模塊像A.B.a.foo()
內以下。一種方法是讓A/__init__.py
導入所有A
的子包,但某些子包也導入其他子包(例如,A.C
使用的東西來自A.B
,導致ImportError
。我正在尋找的是一種方法from A import B as A.B
,即進口子包,但仍然有他們綁定到父包。有沒有一個好辦法做到這一點?
(我不知道什麼標題體現了這個問題,如果有人有一個更好的標題,那麼我'會改變它)
你有一個圓形的進口那裏,這通常意味着你必須在你的包中的一些設計缺陷。如果'B'和'C'都需要對方,那麼它們可能會合併成一個包。 – Bakuriu
@Bakuriu我不認爲這是必然或普遍真實的(儘管它可能比錯誤的真實性更高)。有時候我有兩個概念上相當不同的包,即使它們的實現有點混雜,也需要一些相互依賴。這並不美觀,但在某些情況下,將所有內容合併在一起可能會更糟糕。編輯:我意識到你說「可能」,而不是「絕對」,但我仍然想提出另一個論點。 – cxrodgers