bon le titre indique clairement mon problème
je suis sous python 3.1 et j'ai un soucis de porté de variable et de valeur par défaut de variable
j'ai simplifié mon code à l'extrême (le code en lui même est donc stupide ... mais identifie bien mon soucis
je m'attendais à obtenir
Code : 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 def list_path(p, l=[]): """return a list p list l list """ for i in p: l.append(i) return l print('premier lancement') print(list_path([1,2,3])) print() print('deuxieme lancement') print(list_path([4,5,6]))
et j'obtiens
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 premier lancement [ 1,2,3] deuxieme lancement [ 4,5,6]
cela devient plus drôle si j'écris cela comme ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 premier lancement [ 1,2,3] deuxieme lancement [ 1,2,3,4,5,6]
et là j'obtiens
Code : 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 def list_path(p, l=""): """return a list p list l list """ for i in p: l = l + str(i) return l print('premier lancement') print(list_path([1,2,3])) print() print('deuxieme lancement') print(list_path([4,5,6]))
la portabilité des variables dépends de la nature de la variable ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 premier lancement [ 1,2,3] deuxieme lancement [ 4,5,6]
je code en python depuis des années et c'est la première fois que je constate cela ...
Partager