【发布时间】:2012-10-16 22:13:06
【问题描述】:
我想使用 __init__.py 将包中的所有模块作为别名导入 __main__ 中,以便可以简单地从交互模式调用它们。例如,这是一个示例文件树:
foobar/
__init__.py
foo.py
bar.py
我希望能够从 python 解释器导入包并使用定义的别名访问所有模块,如下所示:
>>> import foobar
>>> <module 'foobar' from 'C:\...'>
>>> f.func()
>>> b.func()
这将要求 __init__.py 包含以下内容:
# __init__.py
from . import foo as f
from . import bar as b
# these will not work
__main__.f = f
__main__.b = b
我怎样才能做到这一点?
编辑
我不想使用from foobar import *,因为它不允许我使用别名。
为每个模块输入from foobar import foo as f,每次我启动交互模式时效率不高,因为可能有数百个模块。
【问题讨论】:
-
在涉及导入数百个模块的交互模式下,您在做什么?如果这是您工作流程的一部分,那么您似乎正在制造自己的问题。您总是可以只创建一个模块来导入所有其他模块(如果需要,可以使用别名),然后从中导入。
标签: python