Aufgeschobene Auswertung mit Lambda in Python

In einer Schleife versuche ich, den Vergleich der beiden value (s) zweier Knoten auf einen späteren Zeitpunkt zu verschieben.

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

Die Ergebnisse sind alle wahr (weil i, j == 2,5 für alle Lambdas). Wie kann ich die Ausführung des Lambda verschieben, bis es tatsächlich aufgerufen wird, aber mit den richtigen Variablenbindungen? Und die Ausdrücke im Lambda sind nicht unbedingt alle gleich ... es gibt eine Reihe weiterer, stärker involvierter Ausdrücke.

Danke für jede Hilfe!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage