class Foo: def __init__(self, name, data=[]): self.name = name self.data = data
def addData(self, val): self.data.append(val) f = Foo('a') f.addData(1) f.addData(2) f2 = Foo('b') print f.name, f.data print f2.name, f2.data ---------------------------- OUTPUT --------------------------- a [1, 2] b [1, 2] ....why would f and f2 contain the same data?? however, if I do this instead.... f = Foo('a') f.addData(1) f.addData(2) f2 = Foo('b', []) print f.name, f.data print f2.name, f2.data ---------------------------- OUTPUT --------------------------- a [1, 2] b [] Any ideas? is this a bug? -- http://mail.python.org/mailman/listinfo/python-list