您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python:如何从目录中的所有模块导入?

Python:如何从目录中的所有模块导入?

my_modules文件夹中,添加一个__init__.py文件以使其成为正确的程序包。在该文件中,您可以在文件的全局范围内注入每个模块的全局变量__init__.py,从而在导入模块时使它们可用(在将全局__all__变量的名称添加到变量之后):

__all__ = []

import pkgutil
import inspect

for loader, name, is_pkg in pkgutil.walk_packages(__path__):
    module = loader.find_module(name).load_module(name)

    for name, value in inspect.getmembers(module):
        if name.startswith('__'):
            continue

        globals()[name] = value
        __all__.append(name)

现在,不要做

from my_modules.class1 import Stuff

您可以这样做:

from my_modules import Stuff

或将所有内容导入全局范围,这似乎是您想要执行的操作:

from my_modules import *

这种方法的问题在于,类之间会相互覆盖,因此,如果提供了两个模块Foo,则只能使用最后一个导入的模块。

python 2022/1/1 18:44:25 有342人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶