ikorot01 at gmail.com
Thu Jun 2 00:21:33 EDT 2016
On Wed, Jun 1, 2016 at 9:42 PM, boB Stepp <robertvstepp at gmail.com> wrote:
> On Wed, Jun 1, 2016 at 7:55 PM, Marcin Rak <mrak at sightlineinnovation.com> wrote:
>> Hi to all
>> I have a beginner question to which I have not found an answer I was able to understand. Could someone explain why the following program:
>> def f(a, L=):
>> return L
>> gives us the following result:
>> How can this be, if we never catch the returned L when we call it, and we never pass it on back to f???
I think the OP question here is:
Why it is printing the array?
There is no line like:
t = f(1)
So, why the first print does print the list? The return value should
be thrown away...
> This comes up rather frequently. In fact, if you just copy your
> function (Which is used in the official Python tutuorial.) and paste
> it into Google you will get some relevant hits. One such is:
> As the link will explain the behavior you observe is a consequence of
> two things: When Python assigns the default argument for the empty
> list and that lists are *mutable*.
More information about the Python-list