如何在python中将字符串转换为函数?

时间:2009-10-04 04:36:16

标签: python

如何将字符串(例如,从文本框输入)转换为正确的函数?

3 个答案:

答案 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]()

根据目标是什么,还有其他各种方式?