====== Fonctions et Classes ======
===== Appel de fonction =====
Appel dans une boucle :
def doit():
something()
rng = range(x)
for i in rng:
doit()
Boucle dans la fonction :
def doit(x):
rng = range(x)
for i in rng:
something()
doit(x)
1.000.000 de tours :
- Appel dans une boucle : 1.341
- Boucle dans la fonction : 1.164
0|50x20|100|Dans:100,Hors:70
L'appel à une fonction prends du temps, il est donc bien plus rapide de mettre la boucle à l'intérieur de la fonction.
===== Classes ====
==== Accès aux méthodes ====
Point dans la boucle :
arr = []
rng = range(x)
for i in rng:
arr.append(something())
Point hors de la boucle :
arr = []
append = arr.append
rng = range(x)
for i in rng:
append(something())
Calcul effectué 1.000.000 de fois :
- Point dans la boucle : 1.307
- Point hors de la boucle : 1.157
0|50x20|1.3|Dans:1.3,Hors:1.1
La référence à une méthode de classe (syntaxe du point), au lieu d'être recalculée à chaque tour de boucle, peut être une fois pour toutes stockée dans une variable, accélérant notablement les calculs.