On Jun 3, 12:59 pm, George Sakkis <[EMAIL PROTECTED]> wrote: > On Jun 3, 6:11 pm, [EMAIL PROTECTED] wrote: > > > > > Hello all, > > > I have come across this issue in Python and I cannot quite understand > > what is going on. > > > class Param(): > > def __init__(self, data={}, condition=False): > > if condition: > > data['class']="Advanced" > > print data > > > In the previous example, I expect the variable data to be re- > > initialized every time I construct an object type Param. However, when > > I do the following: > > > Param(condition=True) > > Param(condition=False) > > > The second call still prints {'class': 'Advanced'} > > > Shouldn't data be initialized to {} since it is the default in > > __init__? Why would the state of data be preserved between two > > independent instantiations? > > > Any help would be greatly appreciated. > > > M. > > This must be by far the most FAQ.. unfortunately it seems it will > remain for 3.x as > well:http://www.python.org/doc/faq/general/#why-are-default-values-shared-... Thanks for clearing this up for me.
M. -- http://mail.python.org/mailman/listinfo/python-list