First page Back Continue Last page Overview Graphics

super()

A call to super(D, self) returns a super-Object.

It finds the next class following D in self.__class__mro__

>>> D.__mro__

(<class 'ABCD_super.D'>, <class 'ABCD_super.B'>, <class 'ABCD_super.C'>, <class 'ABCD_super.A'>, <type 'object'>)

class A(object):

def m(self):

print("do A")

class B(A):

def m(self):

print("do B")

super(B, self).m()

class C(A):

def m(self):

print("do C")

super(C, self).m()

class D(B,C):

def m(self):

print("do D")

super(D, self).m()

Class B

Class A

Class C