【发布时间】:2018-11-28 12:37:29
【问题描述】:
我有一个包含许多表达式的字典,例如
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': (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)。
标签: python expression call