function with list argument defaulting to [] - what's going on here???

Troy Melhase troy.melhase at gmail.com
Sat Apr 14 21:33:11 EDT 2007


On 4/14/07, Mike <mmoum at woh.rr.com> wrote:
> While trying to write a recursive function involving lists, I came
> across some (to me) odd behavior which I don't quite understand. Here's
> a trivial function showing the problem.

from http://docs.python.org/ref/function.html :

Default parameter values are evaluated when the function definition is
executed. This means that the expression is evaluated once, when the
function is defined, and that that same ``pre-computed'' value is used
for each call. This is especially important to understand when a
default parameter is a mutable object, such as a list or a dictionary:
if the function modifies the object (e.g. by appending an item to a
list), the default value is in effect modified.



More information about the Python-list mailing list