在Python中动态生成函数树。

时间:2011-09-11 01:38:27

标签: python metaprogramming python-2.7

我想做的就像这样

def mult(x, y):
     return x * y

def add(x, y):
     return x + y

treeFunction = mult(2, add(x, y))

#outputs 10 (2 * ( 2 + 3 ))
print treeFunction(2, 3)

基本上,在运行时有没有办法通过将add()的值乘以某个值来改变它的返回值。

1 个答案:

答案 0 :(得分:7)

认为你要求的是一个lambda函数:

treeFunction = lambda x,y: mult(2, add(x, y))

然后将其用作:

treeFunction(2, 3)

修改

阅读closures in python。绝对值得你花时间学习。