大家好日子。
我的程序以stdin
采用特定格式的命令,例如:
"define f1 3 + 5"
通过获取此命令,我的程序应该创建一个名为" f1"的函数,它将返回动作" 3 + 5"。
我怎么能意识到它?
答案 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