Python:使用import <module>而不是<module> import *访问文件夹中的模块

时间:2016-01-06 21:49:46

标签: python python-import

我有一个类似于

的嵌套类
/Foo
    __init__.py
    pitythefoo.py
    kungfoo.py
    /Bar
        __init__.py
        spam.py
        eggs.py

我的__init__.py个文件目前有

__all__ = ['pitythefoo', 'kungfoo']代表/Foo/__init__.py文件和

对于__all__ = ['spam', 'eggs']文件

/Foo/Bar/__init__.py

所以我可以使用

访问垃圾邮件和鸡蛋
from Foo.Bar import *
spam
eggs

但是,我想使用

访问垃圾邮件和鸡蛋
from Foo import Bar
Bar.spam
Bar.eggs

我可以在__init__.py文件中使用哪些代码进行此类导入吗?

1 个答案:

答案 0 :(得分:0)

您可以通过修改Foo/Bar/__init__.py

来解决问题
__all__ = ['spam', 'eggs']

from . import *

它有效,但绝对不优雅。

修改
正如上面评论中指出的Andrea Corbellini,您可以避免星号导入:

from . import spam
from . import eggs