在一个循环中,我试图将两个节点的两个 value() 的比较推迟到以后。
class Node():
def __init__(self, v):
self.v = v
def value(self):
return self.v
nodes = [Node(0), Node(1), Node(2), Node(3), Node(4), Node(2)]
results = []
for i in [0, 1, 2]:
j = i + 3
results.append(lambda: nodes[i].value() == nodes[j].value())
for result in results:
print result
结果都是 True (因为 i,j==2,5 对于所有 lambdas)。如何推迟 lambda 的执行,直到它被实际调用,但使用正确的变量绑定?并且 lambda 中的表达式不一定都是相等的……还有很多其他更复杂的表达式。
谢谢你的帮助!