Em Sex, 2006-04-14 às 09:18 -0700, wietse escreveu: > def __init__(self, name, collection=[]):
Never, ever, use the default as a list. > self.collection = collection This will just make a reference of self.collection to the collection argument. > inst.collection.append(i) As list operations are done in place, you don't override the self.collection variable, and all instances end up by having the same list object. To solve your problem, change def __init__(self, name, collection=[]): BaseClass.__init__(self) self.name = name self.collection = collection # Will reuse the list to def __init__(self, name, collection=None): BaseClass.__init__(self) self.name = name if collection is None: collection = [] # Will create a new list on every instance self.collection = collection -- Felipe. -- http://mail.python.org/mailman/listinfo/python-list