希望我的问题不会让我进入蟒蛇大厅。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