J'ai fait un petit test:Pourquoi il est plus rapide de renvoyer un tuple que plusieurs valeurs en Python?
In [12]: def test1():
...: return 1,2,3
...:
In [13]: def test2():
...: return (1,2,3)
...:
In [14]: %timeit a,b,c = test1()
Le plus lent course a pris 66,88 fois plus que le plus rapide. Cela peut signifier qu'un résultat intermédiaire est mis en cache. 10000000 boucles, le meilleur de 3: 92,7 ns par boucle
In [15]: %timeit a,b,c = test2()
Le plus lent course a pris 74.43 fois plus longtemps que le plus rapide. Cela peut signifier qu'un résultat intermédiaire est mis en cache. 10000000 boucles, le meilleur de 3: 80,1 ns par boucle
De retour un tuple est d'environ 15% plus rapide que le retour des valeurs multiples. Pourquoi est-ce vrai?
'' test1' et test2' sont équivalentes en termes de bytecode – vaultah
@vaultah: si 1,2,3 est également un tuple? –
@ Jean-François Fabre oui c'est. –