要绑定的当前值i
和j
该函数,而不是让它看起来外的范围,你可以使用一个关闭或默认参数值。最简单的方法是在lambda中使用默认参数值:
for i in [0, 1, 2]:
j = i + 3
results.append(lambda i=i, j=j: nodes[i].value() == nodes[j].value())
这是闭包的外观:
def make_comp_func(i, j):
return lambda: nodes[i].value() == nodes[j].value()
for i in [0, 1, 2]:
j = i + 3
results.append(make_comp_func(i, j))