class a(object):
mastervar = []
def __init__(self):
print 'called a'class b(a):
def __init__(self):
print 'called b'
self.mapvar() def mapvar(self):
self.mastervar.append(['b'])class c(b):
def __init__(self):
print 'called c'
self.mapvar() def mapvar(self):
super(c, self).mapvar()
self.mastervar.append(['c'])if __name__ == '__main__':
a1 = a()
b1 = b()
c1 = c()
d1 = c() # Call C again print a1.mastervar
print b1.mastervar
print c1.mastervar
print d1.mastervarWhat I don't understand is why mastervar gets modified by each _seperate instance_ of classes that happen to extend the base class 'a'. Shouldn't mastervar be contained within the scope of the inheriting classes? Why is it being treated like a global variable and being modified by the other instances?
Thanks,
Brian "bojo" Jones -- http://mail.python.org/mailman/listinfo/python-list
