如何将字符串(例如,从文本框输入)转换为正确的函数?
答案 0 :(得分:6)
您可以使用eval
。但要小心!这开辟了许多安全漏洞。
>>> s = '3+4'
>>> eval(s)
7
如果你想要它可以调用:
>>> s = '3+4'
>>> f = eval('lambda: ' + s)
>>> f()
7
有关eval
here的更多信息。
答案 1 :(得分:1)
试试这个
func = ___import___('func_name')
或
if hasattr(your_module, func_name): func = getattr(your_module, func_name)
或
if func_name in globals(): func = globals[func_name]
或其他等等
答案 2 :(得分:0)
def func():
print "hello"
# just eval it
eval(raw_input())
# if you just want to ask for name
fName=raw_input()
if fName in globals():
globals()[fName]()
根据目标是什么,还有其他各种方式?