J'ai le code python suivant qui génère une liste de fonctions anonymes:Création d'une liste de fonctions en python
basis = [ (lambda x: n*x) for n in [0, 1, 2] ]
print basis[0](1)
je l'aurais prévu qu'il soit équivalent à
basis = [ (lambda x: 0*x), (lambda x: 1*x), (lambda x: 2*x) ]
print basis[0](1)
Cependant, alors que le deuxième extrait imprime 0 qui est ce que je m'attendais, les premières impressions 2. Quel est le problème avec le premier extrait de code, et pourquoi ne se comporte-t-il pas comme prévu?
question connexe: http://stackoverflow.com/q/139819/4279 – jfs