希望我的問題不會讓我進入蟒蛇大廳。Python3:如何在包級別方便地提供模塊導出?
無論如何,我有一個包poo
,目前只包含一個模塊moo
。將來,poo
內可能還有其他模塊(例如poo.moose
)。假設moo
是一種主要使用模塊,並且用戶想要在導入poo
時準備好所有內容(moo
)。我(和我的包用戶)想避免import poo.moo
,import poo.moo as moo
和(gasp!)import poo.*
。你知道,保存打字是一件好事。因此,我的想法(希望不是完全脫離正確的方式)是將poo.moo
模塊的「exports」(函數,變量,類,...)複製到poo
,__init.py__
。雖然我不想覆蓋poo
中的任何現有定義。
什麼是實現此目標的正確,良好,正確和有效的方式? (我用過「理想」嗎?吶!)或者這是一個壞主意?或者,這是一個非常有活力的Python,它的意思是「...而現在完全不同」? ;)
哦,我的包只有Python3。
請注意,In python, how do you import all classes from another module without keeping the imported module's namespace?有答案,但不明白這也適用於Python包的__init__.py
代碼。爲此,我在下面的詳細答案給出了這些額外的細節。
可能重複[在python中,如何在不保留導入模塊的名稱空間的情況下從其他模塊導入所有類?](https://stackoverflow.com/questions/11980062/in-python-how-do-you- import-all-classes-from-another-modules-without-keeping-the) – ppperry
@ppperry不幸的是,'from x import * as *'不適用於Python3。 – TheDiveO
刪除'as *'。 – ppperry