如何进行此导入:
from module import *
使用imp
模块?
声明:
imp
模块,因为我需要制作几个语句,我想动态地执行它*
,因为我需要在我导入的文件中,module
中定义的变量和方法可以直接使用,我的意思是without module.method
或{{1} }。我想要导入模块中的所有变量和方法,因为我不知道将来模块中可以使用哪些方法或变量答案 0 :(得分: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)
我试图先找到一个__all__
符号,然后,如果那个文件,做一个dir()
并抓住看起来非私人的符号,我会在那里做一些事情 - 你我们必须查看import *
的实现,以了解它是否与Python的实际逻辑非常相似,以达到您的目的。
答案 1 :(得分:1)
如果你正在使用django(如评论中所述),那么这样的事情应该可行
from django.utils import importlib
my_module = importlib.import_module('app.my_module')
from my_module import *
但我同意这可能是危险的
答案 2 :(得分:0)
您可以通过以下方式完成:
from imp import *
但请记住:
明确比隐含更好。
(来自 Python的禅宗 - 使用以下命令读取它:import this
)