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.mastervar
What 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