Bonjour,
j'ai un comportement que je ne comprend pas dans ce petit exemple:
Pourquoi les deux appelle à la fonction test ne renvoient pas la même chose !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 def test(toto = [0.,1.]): toto.append(2.) print toto return toto test1 = test() print 'test1',test1 test2 = test() print 'test2',test2
a savoir
[0.,1.,2.]
puis [0.,1.,2.,2.] !
Pour que ca fonctionne je fait
On m'avait déjà donné cette astuce dans un autre cas de figure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 def test(toto = None): if toto == None : toto = [0.,1.] toto.append(2.) print toto return toto
Quelqu'un saurait m'expliquer pourquoi la première version n'est pas correct, et pourquoi les concepteurs de python ont souhaité ceci?
Cordialement,
Partager