M
Mû
Hi everybody,
A friend of mine asked me a question about the following code:
The results are [2, 3, 1], [2, 3, 1, 1] and [2, 3, 1, 1, 1].
The function acts as if there were a global variable x, but the call of
x results in an error (undefined variable). I don't understand why the
successive calls of f() don't return the same value: indeed, I thought
that [2,3] was the default argument of the function f, thus I expected
the three calls of f() to be exactly equivalent.
I'm don't know much about python, does anybody have a simple explanation
please?
A friend of mine asked me a question about the following code:
Code:
def f(x=[2,3]):
x.append(1)
return x
print(f())
print(f())
print(f())
The results are [2, 3, 1], [2, 3, 1, 1] and [2, 3, 1, 1, 1].
The function acts as if there were a global variable x, but the call of
x results in an error (undefined variable). I don't understand why the
successive calls of f() don't return the same value: indeed, I thought
that [2,3] was the default argument of the function f, thus I expected
the three calls of f() to be exactly equivalent.
I'm don't know much about python, does anybody have a simple explanation
please?