Ive spent a few days going thru a couple of Python tutorials. No problem until I got to classes. I guess my java mindset is blocking my vision. I've borrowed another thread's code snippet and cannot explain the results: class MyClass: list = [] myvar = 10
def add(self, x): self.list.append(x) self.myvar = x def printer(self): print self.list print self.myvar a = MyClass() b = MyClass() for n in range(20): a.add(n) print "list in a:" a.printer() print "list in b:" b.printer() This produces: list in a: list in a: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] 19 list in b: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] 10 WHY do the "class members" list and myvar seem to behave differently? Given the way that list[] is supposedly shared why doesnt myvar exhibit the same behavior? It seems that myvar is acting like a true "instance member". Is this simply because of the underlying types? TIA -- http://mail.python.org/mailman/listinfo/python-list