Zbigniew Braniecki wrote: > It's really a nice pitfall, I can hardly imagine anyone expecting this, > or how easily could I find this info (e.g. what query should I give to > google to get it without bothering people on this group)
looking things up in the documentation *before* deciding that you might have done something that nobody's done before is often a good idea: http://docs.python.org/tut/node6.html#SECTION006710000000000000000 "Important warning: The default value is evaluated only once. This makes a difference when the default is a mutable object such as a list, dictionary, or instances of most classes. /.../" 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 /.../ (to be precise, the default values are evaluated when the "def" state- ment is executed, in the same scope as the "def" statement itself. if you execute the same "def" statement multiple times, the values are recalculated.) </F> -- http://mail.python.org/mailman/listinfo/python-list