क्यों करीबी कार्यों की सूची बनाने का यह प्रयास काम नहीं करता है?इस पायथन समारोह में लैम्ब्डा अभिव्यक्ति के साथ क्या चल रहा है?
def p(x, num):
print x, num
def test():
a = []
for i in range(10):
a.append(lambda x: p (i, x))
return a
>>> myList = test()
>>> test[0]('test')
9 test
>>> test[5]('test')
9 test
>>> test[9]('test')
9 test
यहां क्या हो रहा है?
एक समारोह वास्तव में मैं ऊपर समारोह करने की उम्मीद क्या करता है वह यह है कि:
import functools
def test2():
a = []
for i in range (10):
a.append(functools.partial(p, i))
return a
>>> a[0]('test')
0 test
>>> a[5]('test')
5 test
>>> a[9]('test')
9 test
चूंकि आपके पास एक समाधान है जो functools.partial का उपयोग करता है, सवाल क्या है? –
सवाल यह है कि पहली विधि क्यों काम नहीं करती है? – David