km wrote: > Hi all, > > In the following code why am i not able to access class A's object attribute > - 'a' ? I wishto extent class D with all the attributes of its base classes. > how do i do that ? > > thanks in advance for enlightment ... > > here's the snippet > > #!/usr/bin/python > > class A(object): > def __init__(self): > self.a = 1 > > class B(object): > def __init__(self): > self.b = 2 > > class C(object): > def __init__(self): > self.c = 3 > > class D(B, A, C): > def __init__(self): > self.d = 4 > super(D, self).__init__()
Each class should do a similar super() call, with the appropriate name substitutions. Calls to __init__ must be made explicitly in subclasses, including in the case of multiple inheritance. Also note that often (usually) you would like the __init__ call to come *before* other location initializations, and it's the safest thing to do unless you have clear reasons to the contrary. -Peter -- http://mail.python.org/mailman/listinfo/python-list