Trong một vòng lặp, tôi đang cố trì hoãn việc so sánh hai giá trị() s của hai Nút với một thời gian sau đó.Đánh giá trì hoãn với lambda trong 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
Kết quả đều đúng (vì i, j == 2,5 cho tất cả các lambdas). Làm thế nào tôi có thể trì hoãn việc thực hiện lambda cho đến khi nó thực sự được gọi, nhưng với các ràng buộc biến đúng? Và các biểu thức trong lambda không nhất thiết là bình đẳng ... có một loạt các biểu thức khác liên quan nhiều hơn.
Cảm ơn bạn đã trợ giúp!
Tôi không thực sự chắc chắn những gì bạn đang cố gắng làm. Biểu thức lambda dường như không cần thiết đối với tôi ở đây. Tại sao bạn không thể làm 'results.append (nodes [i] .value() == nodes [j] .value())'? – JAB