I hit an interesting python bug today in which instantiating a class repeatedly appears to be holding state. In later instantiation calls the variable is already defined.
I boiled down the issue into the following class/shell interaction. I realize that this is not the best way to initialize a class variable, but it sure should not be behaving like this. Is this a true bug or is this a "feature"? :D
tester.py:
class Tester(): def __init__(self): self.mydict = self.test() def test(self,out={}): key = "key" for i in ['a','b','c','d']: if key in out: out[key] += ','+i else: out[key] = i return out
Python prompt:
Python 2.6.6 (r266:84292, Oct 6 2010, 00:44:09) [GCC 4.2.1 (Apple Inc. build 5664)] on darwin >>> import tester >>> t = tester.Tester() >>> print t.mydict {'key': 'a,b,c,d'} >>> t2 = tester.Tester() >>> print t2.mydict {'key': 'a,b,c,d,a,b,c,d'}