Protected attributes and methods
A single underscore prefix marks a protected member: by convention it is for use inside the class and its subclasses only. Python does not enforce it, so outside code can still access it.
Understanding Protected attributes and methods in VCE Software Development U4O1
What it does: The Savings subclass reads the parent's _balance attribute inside its own method, which is the intended use of a protected member. Python does not block this access and no error occurs, but it breaks the convention because the code is outside the class and its subclasses. The underscore tells other programmers that _name is for the class and its subclasses, not for general use. One leading underscore means protected. Two leading underscores make the member private and trigger name mangling.
Common mistakes: Dog must inherit from Pet to use the protected attribute _name. It should be class Dog(Pet): so subclass code can access self._name. A class header must end with a colon. It should be class Savings(Account): so the subclass can use the protected _balance.
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 3–79) and word search (Modules 3–114).
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
_nameFill in the Blanks
Spot the Error
Student with a class code? Join your class →