"When you bind (on either a class or an instance) an attribute whose name is not special...you affect only the __dict__ entry for the attribute(in the class or instance, respectively)."
In light of that statement, how would one explain the output of this code: class Test(object): x = [1, 2] def __init__(self): self.x[0] = 10 print Test.__dict__ #{.....'x':[1,2]....} t = Test() print t.x #[10, 2] print t.__dict__ #{} print Test.__dict__ #{.....'x':[10,2]...} It looks to me like self.x[0] is binding on an instance whose attribute name is not special, yet it doesn't affect any __dict__ entry for the attribute in the instance--instead it is affecting a __dict__ entry for the attribute in the class. -- http://mail.python.org/mailman/listinfo/python-list