Maison >développement back-end >Tutoriel Python >Python optimise-t-il la récursion de queue, et sinon, pourquoi ?
Python optimise-t-il la récursion de la queue ?
Python n'optimise pas la récursion de la queue, comme l'a explicitement déclaré son créateur, Guido van Rossum. Rossum donne la priorité aux traçages appropriés plutôt qu'à l'optimisation potentielle de la récursion de queue.
Pourquoi Python n'optimise pas la récursion de queue
Rossum estime qu'il est plus important de maintenir la capacité de générer des traçages précis que d'optimiser la récursivité de la queue. Les traçages sont essentiels pour le débogage et la compréhension de la manière dont le code est exécuté.
Élimination manuelle de la récursion de queue
Malgré le manque d'optimisation de la récursion de queue de Python, vous pouvez éliminer manuellement la récursion à l'aide d'une transformation . Convertissez la fonction récursive en boucle while et mettez à jour les paramètres dans la boucle au lieu d'utiliser la récursion de queue.
Exemple : élimination de la récursion de queue
def trisum(n, csum): while True: # Change recursion to a while loop if n == 0: return csum n, csum = n - 1, csum + n # Update parameters instead of tail recursion
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!