Retour aux quiz
Débutant
Piège des arguments mutables par défaut (2)
Que va afficher ce code ?
quiz.py
1
def add_item(item, items=[]):2
items.append(item)3
return items4
5
print(add_item(1))6
print(add_item(2))Réponses possibles
A[1, 2], [1, 2]
B[1, 2], [1]
C[1], [1, 2]
D[1], [2]
Explication
Au premier appel de la fonction, items est vide donc la fonction renvoie [1]. Au second appel, items=[1] donc la fonction renvoie [1, 2]. C'est comme ça que Python gère les paramètres de fonction qui sont des objets mutables avec une valeur par défaut !