Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does it mean to extend parent behavior in Python classes?
It means adding new features or modifying existing ones in a child class while still using the behavior defined in the parent class.
Click to reveal answer
beginner
How do you call a method from the parent class inside a child class in Python?
You use <code>super().method_name()</code> to call the parent class method from the child class.
Click to reveal answer
beginner
Why would you want to extend parent behavior instead of completely replacing it?
To keep the original functionality and add extra features or changes without losing what the parent class already does.
Click to reveal answer
beginner
Example: What will this code print?
<pre>class Parent:
def greet(self):
print('Hello from Parent')
class Child(Parent):
def greet(self):
super().greet()
print('Hello from Child')
c = Child()
c.greet()</pre>
It will print:
Hello from Parent
Hello from Child
Because the child calls the parent's greet method first, then adds its own message.
Click to reveal answer
beginner
What happens if you forget to call super() when overriding a method?
The parent class method won't run, so you lose the original behavior and only the child's code runs.
Click to reveal answer
What keyword is used to call a parent class method in Python?
Abase()
Bparent()
Cself()
Dsuper()
✗ Incorrect
The super() function is used to access methods from the parent class.
If a child class overrides a method but does NOT call super(), what happens?
AOnly child method runs
BError occurs
CBoth parent and child methods run automatically
DParent method runs first
✗ Incorrect
Without super(), only the child method runs, skipping the parent method.
Why use super() inside an overridden method?
ATo call the parent class method and extend its behavior
BTo call a method from another unrelated class
CTo create a new method
DTo delete the parent method
✗ Incorrect
super() calls the parent method so you can add to it instead of replacing it.
What is the output of this code?
class A:
def say(self):
print('A')
class B(A):
def say(self):
print('B')
super().say()
b = B()
b.say()
AA\nB
BA
CB\nA
DB
✗ Incorrect
The child prints 'B' first, then calls the parent method which prints 'A'.
Extending parent behavior helps to:
ACompletely replace parent code
BReuse code and add new features
CAvoid using inheritance
DMake code slower
✗ Incorrect
Extending behavior allows reuse of existing code while adding new functionality.
Explain how to extend a parent class method in Python and why it is useful.
Think about how to keep old behavior and add new steps.
You got /4 concepts.
Describe what happens if you override a method without calling super() in a child class.
Consider what part of the code is skipped.
You got /3 concepts.
Practice
(1/5)
1. What does super() do in a child class method?
easy
A. It overrides the child class method completely.
B. It calls the parent class method to reuse its behavior.
C. It deletes the parent class method.
D. It creates a new instance of the child class.
Solution
Step 1: Understand the role of super()
super() is used to call a method from the parent class inside a child class method.
Step 2: Recognize code reuse
By calling the parent method, the child can reuse existing behavior and add new features without rewriting code.
Final Answer:
It calls the parent class method to reuse its behavior. -> Option B
2. Which of the following is the correct syntax to call a parent class method greet inside a child class method in Python?
easy
A. super().greet()
B. super.greet()
C. parent.greet()
D. self.super.greet()
Solution
Step 1: Recall correct super() syntax
In Python, super() is a function and must be called with parentheses before accessing methods.
Step 2: Identify correct method call
The correct way to call the parent method is super().greet(), not super.greet() or others.
Final Answer:
super().greet() -> Option A
Quick Check:
super() needs parentheses = A [OK]
Hint: Use parentheses with super() to call parent methods [OK]
Common Mistakes:
Omitting parentheses after super
Using parent instead of super
Trying to access super as an attribute
3. What will be the output of this code?
class Parent:
def greet(self):
print('Hello from Parent')
class Child(Parent):
def greet(self):
super().greet()
print('Hello from Child')
c = Child()
c.greet()
medium
A. Hello from Child
B. Error: super() not defined
C. Hello from Parent
D. Hello from Parent
Hello from Child
Solution
Step 1: Trace the child greet() method
The child method calls super().greet() first, which prints 'Hello from Parent'.
Step 2: Continue child method execution
After calling the parent method, it prints 'Hello from Child'. So both lines print in order.
Final Answer:
Hello from Parent
Hello from Child -> Option D
Quick Check:
super() calls parent then child prints = B [OK]
Hint: super() runs parent code first, then child adds more [OK]
Common Mistakes:
Ignoring the parent print
Expecting only child output
Thinking super() causes error
4. Find the error in this code that tries to extend the parent method:
class Parent:
def show(self):
print('Parent show')
class Child(Parent):
def show(self):
super.show()
print('Child show')
medium
A. super.show() should be super().show()
B. Child class must not override show()
C. Parent class method show() is missing self
D. print statements must be inside __init__
Solution
Step 1: Check super() usage
The code uses super.show() which is incorrect syntax; super() must be called as a function.
Step 2: Correct the syntax
It should be super().show() to properly call the parent method.
Final Answer:
super.show() should be super().show() -> Option A
Quick Check:
super() needs parentheses to call methods = A [OK]
Hint: Always use super() with parentheses to call parent methods [OK]
Common Mistakes:
Forgetting parentheses after super
Thinking parent method needs no self
Believing print must be in __init__
5. You want to extend a parent class method calculate so that the child class adds 10 to the parent's result. Which code correctly does this?
class Parent:
def calculate(self):
return 5
class Child(Parent):
def calculate(self):
# Fill here
hard
A. return Parent.calculate() + 10
B. return calculate() + 10
C. return super().calculate() + 10
D. return self.calculate() + 10
Solution
Step 1: Use super() to call parent method
To get the parent's result, call super().calculate() inside the child method.
Step 2: Add 10 to the parent's result
Return the parent's value plus 10 as super().calculate() + 10.
Final Answer:
return super().calculate() + 10 -> Option C
Quick Check:
super() calls parent, add 10 = C [OK]
Hint: Use return super().method() + extra to extend result [OK]
Common Mistakes:
Calling calculate() without super causes recursion