这两天看到别人代码里的一种写法,觉得还挺新奇:
map_tree(lambda node: vectorize(node, num_vars, num_ints, ops, eos_token=eos_token, one_hot=one_hot), program)#这里map_tree的第一个参数是一个lambda表达式。
#map tree的定义如下:
def map_tree(func, tree):
new_tree = Node(func(tree.value) if tree.value is not None else tree.value)
new_tree.children.extend(map(partial(map_tree, func), tree.children))
return new_tree
#所以将lambda表达式作为第一个参数传进了map_tree,并且在其中进行了调用(func(tree.value))。
简单记录一下。