initializing with empty list as default causes freaky problems
Reckoner
reckoner at gmail.com
Mon Jul 27 13:40:03 EDT 2009
Hi,
Observe the following:
In [202]: class Foo():
.....: def __init__(self,h=[]):
.....: self.h=h
.....:
.....:
In [203]: f=Foo()
In [204]: g=Foo()
In [205]: g.h
Out[205]: []
In [206]: f.h
Out[206]: []
In [207]: f.h.append(10)
In [208]: f.h
Out[208]: [10]
In [209]: g.h
Out[209]: [10]
The question is: why is g.h updated when I append to f.h? Shouldn't
g.h stay []?
What am I missing here?
I'm using Python 2.5.1.
Thanks in advance.
More information about the Python-list
mailing list