Perché questo tentativo di creare un elenco di funzioni non funzionanti non funziona?Cosa sta succedendo con l'espressione lambda in questa funzione python?
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
Cosa sta succedendo qui?
una funzione che in realtà quello che mi aspetto che la funzione di cui sopra da fare è:
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
Poiché si dispone di una soluzione che utilizza functools.partial, qual è la domanda? –
La domanda è: perché il primo metodo non funziona? – David