J'essaie de comprendre l'approche de Python concernant la portée des variables. Dans cet exemple, pourquoi f()
capable de modifier la valeur de x
tel que perçu dans main()
mais pas la valeur de n
?
def f(n, x):
n = 2
x.append(4)
print('In f():', n, x)
def main():
n = 1
x = [0,1,2,3]
print('Before:', n, x)
f(n, x)
print('After: ', n, x)
main()
Sortie :
Before: 1 [0, 1, 2, 3]
In f(): 2 [0, 1, 2, 3, 4]
After: 1 [0, 1, 2, 3, 4]
9 votes
Bien expliqué ici nedbatchelder.com/text/names.html