Python 如何调用表达式并为其赋值

Python 如何调用表达式并为其赋值,python,expression,call,Python,Expression,Call,例如,我有一本包含许多表达的词典 g={'asd':x+y,'sss':x-y} 我想定义两个函数aa和bb,它们返回这些表达式的计算值 g={'asd':x+y,'sss':x-y} def aa(x,y): return g['asd'] def bb(x,y): return g['sss'] aa(2,3) 然而,我不能使它正确 有人知道如何在python中实现这一点吗 此外,事实上我有很多变量,而不仅仅是x,y,而是像x1,x2,x3…x100这样的变量。 我也有很

例如,我有一本包含许多表达的词典

g={'asd':x+y,'sss':x-y}
我想定义两个函数aa和bb,它们返回这些表达式的计算值

g={'asd':x+y,'sss':x-y}
def aa(x,y):
    return g['asd']
def bb(x,y):
    return g['sss']
aa(2,3)
然而,我不能使它正确

有人知道如何在python中实现这一点吗

此外,事实上我有很多变量,而不仅仅是
x,y
,而是像x1,x2,x3…x100这样的变量。 我也有很多功能

如果要这样做:

g = { 'asd': lambda x, y: math.exp(x)**y, 'sss': lambda x, y: x - y }
def aa(x,y):
    return g['asd'](x,y)
def bb(x,y):
    return g['sss'](x,y)
bb(2,3)

我必须复制x1,x2,x3…x100 100次。这太大了。

字典存储的是值,而不是表达式

g={'asd':x+y,'sss':x-y}
def aa(x,y):
    return g['asd']
def bb(x,y):
    return g['sss']
aa(2,3)
您可以做的最接近的事情是存储函数:

g = { 'asd': lambda x, y: x + y, 'sss': lambda x, y: x - y }
然后您可以稍后给他们打电话:

print(g['asd'](2, 3))  # 5

字典存储值,而不是表达式

g={'asd':x+y,'sss':x-y}
def aa(x,y):
    return g['asd']
def bb(x,y):
    return g['sss']
aa(2,3)
您可以做的最接近的事情是存储函数:

g = { 'asd': lambda x, y: x + y, 'sss': lambda x, y: x - y }
然后您可以稍后给他们打电话:

print(g['asd'](2, 3))  # 5
您可以使用eval:

g={'asd':'x+y','sss':'x-y'}
def aa(x,y):
    return eval(g['asd'])
def bb(x,y):
    return g['sss']
aa(2,3)
您可以使用eval:

g={'asd':'x+y','sss':'x-y'}
def aa(x,y):
    return eval(g['asd'])
def bb(x,y):
    return g['sss']
aa(2,3)

你需要的是函数,而不是表达式。例如,
g={'asd':(lambda x,y:x+y),'sss':(lambda x,y:x-y)}
,然后
def aa(x,y):返回g['asd'](x,y)
def bb(x,y):返回g['sss'](x,y)
。您需要的是函数的指令,而不是表达式的指令。例如,
g={'asd':(lambda x,y:x+y),'sss':(lambda x,y:x-y)}
,然后
def aa(x,y):return g['asd'](x,y)
def bb(x,y):return g['sss'](x,y)
。我对这个问题做了一些修改,请看一下。我对这个问题做了一些修改,请看一看。变量在调用时有不同的名称。只需使用lambda方法并传入一个数组,其中数组的每个元素都是不同的变量。如果我有许多变量和许多函数,比如问题中正在修改的函数,会怎么样?变量在调用时有不同的名称。只需使用lambda接近并传递一个数组,其中数组的每个元素都是一个不同的变量如果我有很多变量和很多函数,比如在问题中被修改的函数,会怎么样?