On Thu, 20 Jun 2013 09:19:48 -0400, Roy Smith wrote:

> In article
> <447dd1c6-1bb2-4276-a109-78d7a067b...@d8g2000pbe.googlegroups.com>,
>  rusi <rustompm...@gmail.com> wrote:
> 
>> > > def f(a, L=[]):
>> > >     L.append(a)
>> > >     return L
> 
>> Every language has gotchas. This is one of python's.
> 
> One of our pre-interview screening questions for Python programmers at
> Songza is about this.  I haven't been keeping careful statistics, but
> I'd guess only about 50% of the candidates get this right.


What exactly is the question? Because it's not always a bug to use a 
mutable default, there are good uses for it:


def func(arg, cache={}):
    ...


Now you can pass your own cache as an argument, otherwise the function 
will use the default. The default cache is mutable, and so will remember 
values from one invocation to the next.


-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to