Python中的动态导入

die*_*us9 2 python import module dynamic

我该怎么做这个导入:

from module import *
Run Code Online (Sandbox Code Playgroud)

imp模块?

免责声明:

  • 我需要使用imp模块,因为我需要做几个语句,我想动态地做
  • 我需要使用,*因为我需要在我导入的文件中,定义的变量和方法module可以直接使用,我的意思是without module.methodmodule.variable.我想在模块中导入所有变量和方法,因为我不知道将来模块中可以有哪些方法或变量

Bra*_*des 5

这里!

def load_everything_from(module_names):
    g = globals()
    for module_name in module_names:
        m = __import__(module_name)
        names = getattr(m, '__all__', None)
        if names is None:
            names = [name for name in dir(m) if not name.startswith('_')]
        for name in names:
            g[name] = getattr(m, name)
Run Code Online (Sandbox Code Playgroud)

我试图先找到一个__all__符号,然后,如果那个文件,做一个dir()并且抓住看起来非私有的符号,我会在那里做一些事情- 你必须看看实现,import *知道这是否类似Python的实际逻辑足以满足您的需要.