I\'m trying to understand Python\'s approach to variable scope. In this example, why is f()
able to alter the value of x
, as perceived within
n is an int (immutable), and a copy is passed to the function, so in the function you are changing the copy.
X is a list (mutable), and a copy of the pointer is passed o the function so x.append(4) changes the contents of the list. However, you you said x = [0,1,2,3,4] in your function, you would not change the contents of x in main().