Retour aux quiz
Intermédiaire
Piège des arguments mutables par défaut
Attention aux effets de bord sur les listes.
quiz.py
1
def ajouter(element, liste=[]):2
liste.append(element)3
return liste4
5
print(ajouter('a'))6
print(ajouter('b'))Réponses possibles
A['a'] puis ['b']
B['a'] puis ['a', 'b']
C['a', 'b'] puis ['a', 'b']
DErreur
Explication
Les arguments mutables par défaut sont évalués une seule fois. La même liste est réutilisée entre les appels, donc le deuxième appel conserve 'a'.
💡 La liste par défaut est créée une seule fois.