-
Sujet
-
Heyy
En python, pour faire des fonctions, on fait généralement des codes du type :
def f(x):
return 2*x
Mais on peut aussi faire autrement. Comment ? avec les fonctions lambdas !
f = lambda x : x*2
Mais c’est surtout pratique dans certains cas si vous voulez faire des « one command line »
(lambda x : x *2)(3)
Je me suis demandé s’il y avait d’autres intérêt et j’ai donc regardé si l’un était plus optimisé que l’autre :
>>>import dis >>> flambda = lambda x : x*2 >>> def fdef(x): return x*2 >>> dis.dis(fdef) 2 0 LOAD_FAST 0 (x) 2 LOAD_CONST 1 (2) 4 BINARY_MULTIPLY 6 RETURN_VALUE >>> dis.dis(flambda) 1 0 LOAD_FAST 0 (x) 2 LOAD_CONST 1 (2) 4 BINARY_MULTIPLY 6 RETURN_VALUE >>>
On voit que le code pour la machine virtuelle python est exactement le même… les deux ont donc la même rapidité d’exécution.
- Vous devez être connecté pour répondre à ce sujet.