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

如何从字符串(Python3)创建函数,python,string,python-3.x,input,Python,String,Python 3.x,Input,大家好 我的程序应该通过stdin以特定格式接收命令,如: "define f1 3 + 5" 通过获取此命令,我的程序应该创建一个名为“f1”的函数,该函数将返回操作“3+5” 如何实现它?您应该使用字典来存储具有给定名称的函数。通常,您不应该从字符串创建函数名 您可以使用ast.literal\u eval安全地评估作为字符串提供的计算 以下是一个例子: from ast import literal_eval mystr = input('Enter a calculation:\n'

大家好

我的程序应该通过
stdin
以特定格式接收命令,如:

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


如何实现它?

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

您可以使用
ast.literal\u 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

听起来好像您正在尝试编写解析器,您应该能够在网上找到大量用python编写的解析器示例。到目前为止你试过什么了吗?欢迎来到so。请花点时间阅读该页面上的其他链接。您是否尝试过
python-i