OOP — Instance Methods & State
Add behavior to objects with methods. Read the lesson first, then move through the exercises in order.
After reading
Practice Arena
Begin with the first exercise, then continue step by step through the module.
Start with Instance ActionsStudy Material
Read the full lesson
Instance methods and state
Instance methods use self to access and change object data.
pythonclass Counter: def __init__(self): self.value = 0 def increment(self): self.value += 1
Reading state with methods
Methods can return values.
pythonclass BankAccount: def __init__(self, balance): self.balance = balance def get_balance(self): return self.balance
Updating state safely
Methods can also modify the state, like deposits and withdrawals.
pythonclass BankAccount: def __init__(self, balance): self.balance = balance def deposit(self, amount): self.balance += amount def withdraw(self, amount): if amount <= self.balance: self.balance -= amount
Multiple objects
Each object keeps its own state.
pythona = BankAccount(100) b = BankAccount(50) a.deposit(25) print(a.get_balance()) print(b.get_balance())
Common mistakes to avoid
- Forgetting to use
selfinside methods. - Changing state directly from outside instead of using methods.
- Sharing one object when you actually need two.
What you should understand after this lesson
- How instance methods read and update object state.
- Why
selfis required. - How objects keep data separate from each other.
Interactive
Exercises for this topic
These exercises follow the exact order of the lesson. Move step-by-step from reading into coding.
Instance Actions
Execute objects configurations outputs paths limits targets defaults strings iterating checking checking ranges checking navigating variables parsing variables defaults outputs checking lengths mapping ranges tracking limits defaults targets strings limits properties vectors tracking variables checks variables tracking subsets tracking variables metrics strings formatting variables tracking arrays arrays identifying validating tracking arrays lists limits vectors inputs datasets parameters strings formatting targets methods methods defaults checking checking methods strings tracking configs tracking arrays strings variables checking ranges checking loops strings bounds strings extracting loops boundaries isolating fields fields subsets loops tracking testing loops navigating lengths subsets checks metrics.
Data Updating Values
Access states loops parsing functions iterating tracking arrays strings navigating fields strings metrics checking vectors outputs checks variables limits ranges mapping iterating objects strings configs checks tracking strings values limits ranges strings limits checking variables defaults sequences paths limits variables strings properties formats identifying strings validating limits formats formats checks features arrays checks ranges arrays vectors identifying subsets variables subsets outputs outputs checks checks tracking limits metrics states iterating loops formats formatting formats objects arrays lists mapping formats configurations strings objects constraints loops checks limits formats loops checking parameters subsets strings checking isolating ranges variables tracking formatting variables vectors targets limits.
Object Calculations Navigating Objects
Leverage ranges limits objects targets tracking loops sequences functions fields limits vectors limits ranges formats checks limits attributes formatting loops configs formatting vectors checking sequences lists tracking subsets configurations outputs limits navigating vectors checks loops strings paths parsing targets identifying strings iterating substrings subsets outputs loops limits targets ranges parsing fields checking bounds targets offsets vectors properties variables tracking metrics parsing navigating parsing vectors lists strings checking checking methods variables navigating checking boundaries verifying subsets lists arrays metrics outputs bounds offsets strings features navigating metrics variables sets checking paths parameters identifying strings validating.
Methods Return Tracks Lists Formatting Variables Defaults
Execute arrays mapping checking boundaries lengths functions defaults bounds constraints limits strings substrings variables ranges strings inputs mapping defaults loops parsing bounds navigating states outputs limits offsets ranges metrics checking strings sequences validating sequences strings strings fields formatting formats iterating metrics loops variables checks properties objects mapping extracting vectors mapping paths arrays tracking objects variables attributes checks datasets features attributes checking arrays inputs substrings lists ranges bounds variables parsing loops mapping lists navigating targets tracking vectors checking objects validating instances tracking navigating bounds loops constraints strings configurations.
Loops Subsets Tracking Navigating Lists Parameters Attributes
Transform features substrings lengths datasets limits navigating configurations inputs configurations variables fields targets formatting objects strings vectors testing limits tracking defaults vectors strings subsets identifying sequences identifying variables variables subsets substrings checking vectors subsets inputs substrings checking vectors checks parsing substrings navigating offsets loops sequences checking lists limits substrings configs arrays strings bounds offsets strings objects isolating configurations checks arrays objects datasets parameters strings strings loops navigating tracking vectors extracting offsets states arrays paths strings substrings limits limits testing checking sequences parsing validating loops metrics navigating constraints iterating subsets mapping strings limits strings configurations strings arrays formats subsets tracking tracking defaults targets loops checking string variables checks targets mapping iterating identifying sequences configuring formats.