Отложенная оценка с использованием лямбды в Python
В цикле я пытаюсь отложить сравнение двух значений () двух узлов на более позднее время.
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
Все результаты верны (потому что i, j == 2,5 для всех лямбд). Как я могу отложить выполнение лямбды до ее фактического вызова, но с правильными привязками переменных? И выражения в лямбда-выражениях не обязательно равны ... есть множество других более сложных выражений.
Спасибо за любую помощь!