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

How to call expressions and assign them values

我有很多表达的字典,例如

g={'asd':x+y,'sss':x-y}

我想定义两个函数 aa 和 bb return 这些表达式的计算值。

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': 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 eval(g['asd'])
def bb(x,y):
    return g['sss']
aa(2,3)