Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== Fonctions et Classes ====== ===== Appel de fonction ===== Appel dans une boucle : <Code python> def doit(): something() rng = range(x) for i in rng: doit() </Code> Boucle dans la fonction : <Code python> def doit(x): rng = range(x) for i in rng: something() doit(x) </Code> 1.000.000 de tours : - Appel dans une boucle : 1.341 - Boucle dans la fonction : 1.164 <barchart>0|50x20|100|Dans:100,Hors:70</barchart> 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 : <Code python> arr = [] rng = range(x) for i in rng: arr.append(something()) </Code> Point hors de la boucle : <Code python> arr = [] append = arr.append rng = range(x) for i in rng: append(something()) </Code> Calcul effectué 1.000.000 de fois : - Point dans la boucle : 1.307 - Point hors de la boucle : 1.157 <barchart>0|50x20|1.3|Dans:1.3,Hors:1.1</barchart> 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.