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 liste
4
 
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.