Bug in __init__?

Fredrik Lundh fredrik at pythonware.com
Fri Jan 18 19:11:14 CET 2008

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:


     "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.


     "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 


More information about the Python-list mailing list