如何进行导入:
from module import *
使用 imp
模块?
免责声明:
- 我需要使用
imp
模块,因为我需要做几个语句,我想动态地做 - 我需要使用
*
因为我需要在导入的文件中直接使用module
中定义的变量和方法,我的意思是没有module.method
或module.variable
。而且我想导入模块中的所有变量和方法,因为我不知道将来模块中可以有哪些方法或变量
最佳答案
这里!
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()
并抓取看起来非私有(private)的符号——您必须查看 import *
的实现,以了解它是否与 Python 的实际逻辑足够接近以达到您的目的。
关于python - Python 中的动态导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8336119/