我正在尝试从模块中调用函数。模块和函数具有相同的名称,在运行时使用raw_input()
读取并存储在变量中。
例如,
def module():
print "x"
ent="module"
__import__(ent)
ent()
我可以使用变量ent
导入该模块。但是当我使用该变量调用该函数时,我得到了这个错误:
TypeError: 'str' object is not callable
如果在运行之前我不知道他们的名字,我如何从模块中调用该功能?
答案 0 :(得分:1)
正如Jon所说,您没有保存对导入模块的引用。你需要它来调用它的功能。要实际使用该功能,您可以使用内置的getattr
功能。例如,
ent = "module"
mod = __import__(ent)
func = getattr(mod, ent)
func()
然而,使用__import__
是相当不寻常的,并且只在特殊情况下才会使用。您的情况是否足够特殊以保证其使用?