Calling the parent __init__ with super()
Runs the parent class's __init__ first so it sets up inherited attributes, then the child's __init__ adds its own extra attributes.
Understanding Calling the parent __init__ with super() in VCE Software Development U3O1
What it does: The super().__init__(name) line runs the parent's setup, then self.wage = wage adds a child-only attribute. Because super() binds self automatically, passing self again sends an extra argument and causes a TypeError.
Common mistakes: The child __init__ must accept name so it can pass it up to the parent with super().__init__(name). Without the name parameter, name is undefined on the next line. It should be def __init__(self, name):. Car must list Vehicle in brackets to inherit from it. Without a parent class, super().__init__(brand) has no Vehicle setup to run. It should be class Car(Vehicle):.
Free printable worksheet with full answer key — or add this module to a class and your students practise it interactively.
This module's key terms are also in a printable crossword (Modules 142–155) and word search (Modules 142–166).
Take this worksheet further — free with Cloodit
Each concept is reinforced from every angle — learned, then applied, then tested.
Cloodit turns curriculum-aligned coding content into journeys students work through one biome at a time.
Over 100 of them, across seven natural biomes.
Turns their work into revision material ready for Flash Cards and Exam study.
Live, competitive practice for the start of the lesson or a teacher-led lesson finisher.
Honour your top performers, or encourage a student who's trying hard — ready to print in seconds.
Quick Questions
Match the Pairs
Key Term
super().__init__()Fill in the Blanks
Spot the Error
Student with a class code? Join your class →