我想运行一个由字符串标识的函数。
toRun = 'testFunction'
def testFunction():
log.info('In the function');
run(toRun)
run
将是我需要使用的任何命令。我已经尝试exec
/ eval
没有太多运气了。
答案 0 :(得分:3)
locals
返回包含当前范围
CheckBox
答案 1 :(得分:2)
最好使用将字符串映射到函数的字典。
locals()[toRun]()
答案 2 :(得分:2)
构建函数getattr()
可用于返回作为参数传递的对象的命名属性。
示例强>
>>> import sys
>>> def function():
... print 'hello'
...
>>> fun_object = getattr( sys.modules[ __name__ ], 'function')
>>> fun_object()
hello
它的作用
sys.modules[ __name__ ]
返回当前模块对象。
getattr( sys.modules[ __name__ ], 'function')
返回对象名function
的属性,sys.modules[ __name__ ]
是当前对象。
fun_object()
调用返回的函数。答案 3 :(得分:0)
您可以使用eval
eval("testFunction()") # must have brackets in order to call the function
或者你可以
toRun += "()"
eval("eval(toRun)")