Bonjour
Je viens de tester le code suivant
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 >>> def x(a, b=[]): ... print "avant: ", b ... b.append(a) ... print "après: ", b ... >>> >>> x(1) avant: [] après: [1] >>> x(2) avant: [1] après: [1, 2] >>> x(3) avant: [1, 2] après: [1, 2, 3] >>> x(1) avant: [1, 2, 3] après: [1, 2, 3, 1]
Quelqu'un saurait expliquer pourquoi le paramètre b (local à la fonction) se remplit et garde ses valeurs d'appels en appels et ne reprend pas sa valeur par défaut ???
Tandis que cet autre code
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 >>> def x(a=10): ... print a ... >>> >>> x() 10 >>> x(2) 2 >>> x() 10 >>> x(5) 5 >>> x() 10
Quasiment analogue au premier (remplissage du paramètre) fonctionne correctement (au 3° appel je vois bien que le paramètre n'a pas gardé la valeur 2 du second appel et a repris sa valeur par défaut)...
???
Partager