如何从字符串创建函数(Python3)

时间:2018-05-09 14:11:42

标签: python string python-3.x input

大家好日子。

我的程序以stdin采用特定格式的命令,例如:

"define f1 3 + 5"

通过获取此命令,我的程序应该创建一个名为" f1"的函数,它将返回动作" 3 + 5"。

我怎么能意识到它?

1 个答案:

答案 0 :(得分:1)

您应该使用字典来存储具有给定名称的函数。通常,您不应该从字符串创建函数名称。

您可以使用ast.literal_eval安全地评估以字符串形式提供的计算。

以下是一个例子:

from ast import literal_eval

mystr = input('Enter a calculation:\n')
# 'define f1 3 + 5'

_, name, calc = mystr.split(None, 2)

d = {name: literal_eval(calc)}

print(d['f1'])  # 8