Multiple inheritance lets a class use features from more than one parent class. This helps reuse code and combine different abilities in one place.
Why multiple inheritance exists 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): pass
List all parent classes inside parentheses, separated by commas.
The child class inherits methods and properties from all listed parents.
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 an Artist class that can both write and paint by inheriting from Writer and Painter.
Python
class Writer: def write(self): print("Writing words") class Painter: def paint(self): print("Painting pictures") class Artist(Writer, Painter): pass art = Artist() art.write() art.paint()
Important Notes
Be careful with method names that appear in multiple parents; Python uses the order of inheritance to decide which one to use.
Multiple inheritance can make code harder to understand if overused, so use it wisely.
Summary
Multiple inheritance allows a class to get features from more than one parent.
It helps combine different abilities without rewriting code.
Python uses the order of parent classes to decide which method to use if there are duplicates.
Practice
1. Why does Python support multiple inheritance?
easy
Solution
Step 1: Understand inheritance basics
Inheritance lets a class use methods and properties from a parent class.Step 2: Recognize multiple inheritance purpose
Multiple inheritance allows a class to get features from more than one parent, combining abilities without rewriting code.Final Answer:
To allow a class to inherit features from more than one parent class -> Option AQuick Check:
Multiple inheritance = inherit from multiple parents [OK]
Hint: Multiple inheritance means many parents, many features [OK]
Common Mistakes:
- Thinking it makes code faster
- Believing it removes methods
- Assuming all classes become identical
2. Which of the following is the correct syntax to define a class
Child that inherits from two parent classes Parent1 and Parent2?easy
Solution
Step 1: Recall Python class inheritance syntax
In Python, parent classes are listed inside parentheses after the class name.Step 2: Identify correct syntax for multiple inheritance
Multiple parents are separated by commas inside the parentheses.Final Answer:
class Child(Parent1, Parent2): -> Option DQuick Check:
Parents in parentheses, comma separated [OK]
Hint: Use parentheses with commas for multiple parents [OK]
Common Mistakes:
- Using 'inherits' keyword (not Python syntax)
- Using colon instead of parentheses
- Using arrow '->' which is invalid
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)
Python looks for methods in the order of parent classes listed. Here, C inherits from A first, then B.Step 2: Determine which greet method 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 uses first parent method [OK]
Hint: First parent class method is used in conflicts [OK]
Common Mistakes:
- Choosing method from second parent
- Expecting child's own method when none defined
- Thinking it causes error
4. Find the error in this code that tries to use multiple inheritance:
class X:
def method(self):
return 'X'
class Y:
def method(self):
return 'Y'
class Z(X Y):
passmedium
Solution
Step 1: Check class Z syntax
Parent classes must be separated by commas inside parentheses.Step 2: Identify missing comma
Code has 'class Z(X Y):' missing comma between X and Y.Final Answer:
Missing comma between parent classes in class Z definition -> Option BQuick Check:
Parents separated by commas [OK]
Hint: Separate parent classes with commas [OK]
Common Mistakes:
- Thinking method names must differ
- Believing multiple methods cause error
- Assuming only one parent allowed
5. You want to create a class
SmartPhone that has features from both Camera and Phone classes. Which is the best reason to use multiple inheritance here?hard
Solution
Step 1: Understand the goal of SmartPhone class
SmartPhone needs to have both camera and phone abilities.Step 2: Recognize multiple inheritance benefit
Using multiple inheritance lets SmartPhone reuse code from Camera and Phone classes without rewriting.Final Answer:
To combine camera and phone features without rewriting their code -> Option CQuick Check:
Multiple inheritance = reuse multiple parents' features [OK]
Hint: Use multiple inheritance to reuse code from many classes [OK]
Common Mistakes:
- Thinking it improves speed
- Believing it removes need for methods
- Assuming it forces method sharing
