Python将所有内容从多个文件模块导入到名称空间

时间:2019-03-11 21:16:38

标签: python python-module

假设我有这个:

script.py
module/
    __init__.py # just contains: __all__ = ['foo', 'bar']
    foo.py      # has a function called foo
    bar.py      # has a function called bar

如果我从script.py进行了from module import *的工作,但是要调用foo或bar函数,我必须做foo.foo() / bar.bar()

有什么方法可以在名称空间中使用foo和bar函数,所以我可以通过执行foo() / bar()来调用它们?

编辑:可接受的答案适用于此示例情况,但是经过测试,如果文件名称中包含数字,则似乎无法使用。

例如,如果您将名为bar2.py的文件添加到具有模块hello的功能的模块文件夹中,并相应地编辑__init__.py,则在script.py中不会可以直接在脚本上调用hello函数(只需执行hello()),尽管您可以执行bar2.hello(),该方法虽然有效,但并不是我想要的。

编辑:经过大量测试,我发现通过删除__all__并仅保留导入即可。

0 个答案:

没有答案