ループで、2つのノードの2つの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であるため)。ラムダの実行を実際に呼び出されるまで延期するにはどうすればよいですか?ただし、正しい変数バインディングを使用しますか?そして、ラムダの式は必ずしもすべてが等しいわけではありません...他にももっと複雑な式がたくさんあります。
助けてくれてありがとう!