bad recursion, still works

Michael Torrie torriem at gmail.com
Tue Jul 15 19:21:14 EDT 2008


iu2 wrote:
> I still don't understand: In each recursive call to flatten, acc
> should be bound to a new [], shouldn't it? Why does the binding happen
> only on the first call to flatten?

Nope.  In each new call it's (re)bound to the same original list, which
you've added to as your function continues--it's mutable.  Default
variables that are bound to mutable objects are one of the big caveats
that is mentioned in the FAQ.




More information about the Python-list mailing list