में लैम्ब्डा के साथ खराब मूल्यांकन एक लूप में, मैं बाद में दो नोड्स के दो मान() एस की तुलना को रोकने की कोशिश कर रहा हूं।पाइथन
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
परिणाम सभी सत्य हैं (क्योंकि मैं, सभी lambdas के लिए j == 2,5)। जब तक इसे वास्तव में नहीं कहा जाता है, तब तक मैं लैम्ब्डा के निष्पादन को कैसे रोक सकता हूं, लेकिन सही परिवर्तनीय बाइंडिंग के साथ? और लैम्ब्डा में अभिव्यक्ति सभी आवश्यक समानता नहीं हैं ... अन्य शामिल अभिव्यक्तियों का एक गुच्छा है।
किसी भी मदद के लिए धन्यवाद!
मुझे सच में यकीन नहीं है कि आप क्या करने की कोशिश कर रहे हैं। लैम्ब्डा अभिव्यक्ति यहां मेरे लिए अनावश्यक लगती है। आप केवल 'results.append नहीं कर सकते हैं (नोड्स [i] .value() == नोड्स [जे] .value()) '? आंशिक सुझाव देने के लिए – JAB