Multiple inheritance lets a class use features from more than one parent class. This helps combine different abilities in one place.
Multiple inheritance syntax in Python
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Syntax
Python
class ChildClass(ParentClass1, ParentClass2): # class body
List all parent classes inside parentheses, separated by commas.
Python looks for methods in the order parents are listed (left to right).
Examples
Python
class Flyer: def fly(self): print("I can fly") class Swimmer: def swim(self): print("I can swim") class Duck(Flyer, Swimmer): pass
Python
class A: def greet(self): print("Hello from A") class B: def greet(self): print("Hello from B") class C(A, B): pass c = C() c.greet()
Sample Program
This program shows a Book class that can both write and read by inheriting from Writer and Reader.
Python
class Writer: def write(self): print("Writing...") class Reader: def read(self): print("Reading...") class Book(Writer, Reader): pass b = Book() b.write() b.read()
Important Notes
If two parent classes have methods with the same name, Python uses the method from the first parent listed.
Use multiple inheritance carefully to avoid confusion and keep code clear.
Summary
Multiple inheritance allows a class to inherit from more than one parent class.
List parent classes separated by commas inside parentheses after the class name.
Method resolution order follows the order of parents listed.
Practice
1. What is the correct way to declare a class
Child that inherits from two parent classes Parent1 and Parent2 in Python?easy
Solution
Step 1: Understand Python class inheritance syntax
In Python, to inherit from multiple classes, list them separated by commas inside parentheses after the class name.Step 2: Match the syntax to the options
class Child(Parent1, Parent2): uses the correct syntax:class Child(Parent1, Parent2):. Other options use invalid syntax.Final Answer:
class Child(Parent1, Parent2): -> Option AQuick Check:
Multiple inheritance syntax = class Child(Parent1, Parent2): [OK]
Hint: List parent classes separated by commas in parentheses [OK]
Common Mistakes:
- Using '&' instead of commas between parent classes
- Writing 'inherits' keyword like other languages
- Not using parentheses after class name
2. Which of the following is a syntax error when defining a class with multiple inheritance?
easy
Solution
Step 1: Check syntax for multiple inheritance
Parent classes must be separated by commas inside parentheses.Step 2: Identify the incorrect option
class MyClass(Parent1 Parent2): pass misses the comma between Parent1 and Parent2, causing a syntax error.Final Answer:
class MyClass(Parent1 Parent2): pass -> Option DQuick Check:
Missing comma between parents = SyntaxError [OK]
Hint: Always separate parent classes with commas [OK]
Common Mistakes:
- Omitting commas between parent classes
- Leaving out parentheses entirely
- Using colons instead of commas
3. What will be the output of this code?
class A:
def greet(self):
return "Hello from A"
class B:
def greet(self):
return "Hello from B"
class C(A, B):
pass
obj = C()
print(obj.greet())medium
Solution
Step 1: Understand method resolution order (MRO)
Class C inherits from A first, then B. Python looks for methods in the order of parents listed.Step 2: Determine which greet() is called
Since A is first, C uses A's greet method, returning "Hello from A".Final Answer:
"Hello from A" -> Option AQuick Check:
MRO follows parent order = "Hello from A" [OK]
Hint: First parent class method is used in multiple inheritance [OK]
Common Mistakes:
- Assuming last parent class method is called
- Expecting an error due to multiple parents
- Confusing method names or forgetting MRO
4. Find the error in this multiple inheritance code:
class X:
pass
class Y:
pass
class Z(X Y):
passmedium
Solution
Step 1: Check syntax for multiple inheritance
Parent classes must be separated by commas inside parentheses.Step 2: Identify the syntax error
In class Z(X Y):, the comma between X and Y is missing, causing a syntax error.Final Answer:
Missing comma between parent classes -> Option BQuick Check:
Comma missing between parents = SyntaxError [OK]
Hint: Separate parent classes with commas inside parentheses [OK]
Common Mistakes:
- Forgetting commas between parent classes
- Using square brackets instead of parentheses
- Thinking multiple inheritance is not allowed
5. Given these classes:
What is the output?
class Alpha:
def action(self):
return "Alpha"
class Beta:
def action(self):
return "Beta"
class Gamma(Alpha, Beta):
def action(self):
return super().action() + " & Gamma"
class Delta(Gamma, Beta):
pass
obj = Delta()
print(obj.action())What is the output?
hard
Solution
Step 1: Understand the inheritance chain and MRO
Delta inherits from Gamma and Beta. Gamma inherits from Alpha and Beta. The MRO for Delta is Delta, Gamma, Alpha, Beta, object.Step 2: Trace the action() method call
Delta uses Gamma's action(), which calls super().action(). In Gamma, super() refers to Alpha (next in MRO), so Alpha.action() returns "Alpha". Then Gamma appends " & Gamma".Final Answer:
"Alpha & Gamma" -> Option CQuick Check:
super() follows MRO = "Alpha & Gamma" [OK]
Hint: super() calls next in MRO, not just first parent [OK]
Common Mistakes:
- Assuming super() calls Beta's method instead of Alpha's
- Ignoring MRO order in multiple inheritance
- Expecting an error due to complex inheritance
