"[EMAIL PROTECTED]" <[EMAIL PROTECTED]> writes: > Hello everybody, > > I've banged my ahead around for a while trying to figure out why > multiple instances of a class share the same instance variable. I've > stripped down my code to the following, which reproduces my problem. > > class Test(object): > def __init__(self, v=[]): > self.values = v
You have to understand that the default value for v - an empty list - is made at compile time - and it's the *same* list every time it's used i.e. if you don't pass in a value for v when you make new instances of your class. A common paradigm to get round this - assuming you want a different empty list each time - is something like: def __init__(self, v = None): self.values = v if v else [] (or maybe test explicitly for None, but you get the idea.) -- http://mail.python.org/mailman/listinfo/python-list