4 ms·
That's because of the implicit copy() only copying by value 1 level deep? On the topic of the bug in OP, would a Python newbie expect the similarly confusing b
by socillion 13y ago
That's because of the implicit copy() only copying by value 1 level deep?
On the topic of the bug in OP, would a Python newbie expect the similarly confusing behavior caused by interactions between (im)mutability and function arguments being passed as a "reference"?
Using OP's foo():
>>> a = [1,2,3]
>>> foo(a)
[1, 2, 3, 9]
>>> a
[1, 2, 3, 9]
if 'a' were an immutable object like an int, it wouldn't be modified.
>>> def bar(n):
n += 1
print(n)
>>> b = 3
>>> bar(b)
4
>>> b
3