В цикле я пытаюсь отложить сравнение двух значений () двух узлов на более позднее время.
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 для всех лямбда-выражений). Как я могу отложить выполнение лямбды до ее фактического вызова, но с правильными привязками переменных? И выражения в лямбда-выражениях не обязательно равны... есть куча других более сложных выражений.
Спасибо за любую помощь!
results.append(nodes[i].value() == nodes[j].value())
? - person JAB   schedule 18.06.2012