Bird
Raised Fist0

Find the issue in this multiple inheritance example:

medium📝 Debug Q7 of Q15
Python - Multiple Inheritance and Method Resolution

Find the issue in this multiple inheritance example:

class A:
    def process(self):
        print('A process')

class B(A):
    def process(self):
        print('B process')

class C(A):
    def process(self):
        print('C process')

class D(B, C):
    def process(self):
        B.process(self)
        C.process(self)

obj = D()
obj.process()
AMissing call to super() causes syntax error.
BClass D should not inherit from both B and C.
CPython does not allow calling methods from multiple parents.
DCalling parent methods directly can cause methods to run multiple times and break MRO.
Step-by-Step Solution
Solution:
  1. Step 1: Identify direct calls to parent methods

    Calling B.process(self) and C.process(self) directly bypasses MRO and can cause duplicate or unexpected calls.
  2. Step 2: Use super() to respect MRO

    Using super().process() ensures methods are called once in correct order.
  3. Final Answer:

    Calling parent methods directly can cause methods to run multiple times and break MRO. -> Option D
  4. Quick Check:

    Direct parent calls break MRO; use super() [OK]
Quick Trick: Avoid direct parent calls; always use super() in overrides [OK]
Common Mistakes:
MISTAKES
  • Calling parent methods directly instead of super()
  • Ignoring MRO and causing duplicate calls
  • Assuming multiple inheritance forbids multiple parent calls

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Python Quizzes