Maison >développement back-end >Tutoriel Python >Comment puis-je éviter un comportement inattendu avec des paramètres par défaut mutables en Python ?
Éviter les problèmes liés aux paramètres par défaut dans Python
Lorsque vous travaillez avec les paramètres par défaut de Python, certaines complexités peuvent survenir, notamment avec les arguments mutables. Pour éviter ces problèmes, il est crucial de traiter le comportement du paramètre par défaut.
Par exemple, considérons la fonction suivante :
def my_func(working_list=[]): working_list.append("a") print(working_list)
Lors de l'appel initial, le paramètre par défaut de la liste vide fonctionne comme prévu . Cependant, les appels ultérieurs entraînent un comportement inattendu où le paramètre par défaut, une liste vide initialement, conserve les éléments ajoutés des exécutions précédentes.
Pour résoudre ce problème et créer une nouvelle liste vide à chaque appel de fonction, Python propose deux approches :
1. Test pour Aucun :
def my_func(working_list=None):</p><pre class="brush:php;toolbar:false">if working_list is None: working_list = [] working_list.append("a") print(working_list)
2. Affectation conditionnelle :
def my_func(working_list=None):</p><pre class="brush:php;toolbar:false">working_list = [] if working_list is None else working_list working_list.append("a") print(working_list)
Les deux solutions garantissent qu'un nouveau la liste vide est initialisée avant d'y ajouter des éléments, isolant ainsi chaque appel de fonction et empêchant l'accumulation de données des précédents exécutions.
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!