New submission from glubglub: In the class below, 'arr' list should be unique for each instance of class Blah. In reality, 'arr' is shared by all instances of 'Blah'
class Blah: arr = [] # this member should not be # shared across all instances of blah s = '' def __init__(self, s): self.s = s def __str__( self): return '[%s, %s]' % (self.s, str(self.arr)) objs = [] objs.append(Blah('obj-a')) objs.append(Blah('obj-b')) objs.append(Blah('obj-c')) # add to first object's array objs[0].arr.append('abc') # bug: 'abc' got added to all arrays # print all arrays for obj in objs: print obj ------------------------------ Actual Output: [obj-a, ['abc']] [obj-b, ['abc']] [obj-c, ['abc']] Expected Output: [obj-a, ['abc']] [obj-b, []] [obj-c, []] ---------- components: Interpreter Core messages: 57449 nosy: glubglub severity: normal status: open title: List member inside a class is shared by all instances of the class versions: Python 2.3, Python 2.4, Python 2.5 __________________________________ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1437> __________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com