【发布时间】:2016-07-08 11:00:23
【问题描述】:
我正在尝试从模块中调用函数。模块和函数具有相同的名称,在运行时使用raw_input() 读取并存储在变量中。
例如,
模块.py
def module():
print "x"
运行.py
ent="module"
__import__(ent)
ent()
我可以使用变量ent 导入该模块。但是当我使用该变量调用该函数时,我得到了这个错误:
TypeError: 'str' object is not callable
当我在运行时才知道它们的名字时,如何从模块中调用该函数?
【问题讨论】:
-
ent仍然是"module",您实际上还没有分配导入。另请注意,您需要致电ent.module()。 -
为什么不只是
import module? -
这是可行的,但是为什么你想让模块和函数名称像那样动态?
-
我发现问题本身很清楚;希望我的编辑使它更清晰一些。我承认我仍然对 为什么 OP 想要在运行时获取函数和模块名称感到困惑,也许这是一个 XY 问题......