let' look at second contrived example that illustrates this problem more clearly here we have base class that has method named call_me two subclasses override that methodand then another subclass extends both of these using multiple inheritance this is called diamond inheritance because of the diamond shape of the class diagrambaseclass +call_me(leftsubclass rightsubclass +call_me(+call_me(subclass +call_me(let' convert this diagram to codethis example shows when the methods are calledclass baseclassnum_base_calls def call_me(self)print("calling method on base class"self num_base_calls + class leftsubclass(baseclass)num_left_calls def call_me(self)baseclass call_me(selfprint("calling method on left subclass"self num_left_calls + class rightsubclass(baseclass)num_right_calls def call_me(self)baseclass call_me(selfprint("calling method on right subclass"self num_right_calls + class subclass(leftsubclassrightsubclass)