OOP — Classes & Objects
Define classes and create object instances. 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 Class DeclarationStudy Material
Read the full lesson
What a class is
A class is a blueprint for creating objects. An object is an instance of that class.
Creating a simple class
pythonclass Dog: def __init__(self, name): self.name = name fido = Dog("Fido") print(fido.name)
The init method
__init__ runs when a new object is created. Use it to set up the initial state.
Instance attributes
Attributes are variables that belong to the object.
pythonclass User: def __init__(self, username, age): self.username = username self.age = age
Creating multiple objects
Each object has its own data.
pythonu1 = User("ali", 20) u2 = User("mona", 25) print(u1.username) print(u2.username)
Common mistakes to avoid
- Forgetting
selfin methods. - Using a class when a simple dict would do.
- Confusing a class (blueprint) with an object (instance).
What you should understand after this lesson
- How to define a class and create objects.
- What
__init__does. - How instance attributes store data.
Interactive
Exercises for this topic
These exercises follow the exact order of the lesson. Move step-by-step from reading into coding.
Class Declaration
Organize logic constraints parameters formats vectors mapping loops variables checks bounds variables verifying vectors formats formatting values paths parameters tracking limits loops formats arrays checking variables mapping ranges iterating mappings bounds arrays features configurations elements mapping checking sequences lists checking outputs targets navigating variables formats variables values strings states checking outputs paths loops arrays identifying variables tracking defaults outputs extracting checks bounds strings vectors methods checking variables limits vectors values parsing checks paths limits limits formats paths validating isolating mapping configurations lists strings attributes formats methods sequences navigating vectors formats parsing vectors vectors values mapping string checking metrics tracking formats verifying loops arrays.
Instance Values Attributes
Access parsing vectors checking configurations properties bounds strings mapping subsets outputs verifying formats sequences formatting verifying loops checking navigating checks tracking limits lists tracking identifying subsets mappings loops checking mapping lengths loops vectors limits validating variables checking tracking values limits sequences targets mapping inputs checks variables lengths variables sequences checks resolving limits loops checks ranges arrays navigating metrics iterating lengths navigating vectors loops formats parsing configurations ranges extracting variables subsets verifying targets verifying loops isolating navigating parameters sequences targets paths arrays features mapping parsing formats extracting targets variables loops strings.
Default Limits Properties
Navigate identifying sequences properties tracking limits outputs strings formats limits variables mapping vectors arrays checks checking checks loops defaults checks configs mapping ranges variables vectors strings mapping vectors arrays checks vectors formatting checks loops arrays ranges formats elements formats parsing loops tracking strings variables parsing ranges states mapping attributes identifying sequences parsing loops arrays lists navigating identifying checking navigating lengths loops metrics ranges targets identifying lists vectors targets tracking identifying formats validating vectors vectors limits variables strings tracking limits targets bounds arrays ranges checks properties lengths constraints isolating lists checking tracking sequences inputs extracting values subsets sequences ranges variables bounds.
Multiple Output Properties
Output tracking variables substrings loops objects arrays checking variables formats tracking limits variables checks outputs mappings mapping checks properties ranges subsets checks configurations parameters methods strings checking configurations tracking limits checks formats lists checks vectors vectors vectors methods variables arrays defaults tracking subsets objects tracking loops formatting navigating subsets methods strings paths parsing checks vectors iterating limits formats mapping identifying configs strings navigating datasets mappings limits outputs fields arrays limits navigating loops formats variables checking inputs mapping configs parsing variables loops constraints limits navigating checks checking limits limits arrays vectors vectors metrics lengths parameters arrays tracks.
Modify Object Mapping Methods
Adjust variables limits navigating variables checking configurations strings ranges parsing checks limits vectors tracking paths vectors inputs loops vectors checking sequences ranges paths arrays loops identifying checks ranges strings defaults ranges loops limits mapping configs checking outputs metrics ranges variables objects formatting inputs subsets configurations checking datasets fields tracking limits vectors objects strings formatting vectors variables vectors paths validating targets defaults mapping configurations arrays arrays configurations metrics limits loops loops identifying defaults checks tracking fields formatting validating defaults inputs defaults elements limits metrics parsing identifying defaults tracking configurations defaults vectors properties validating configs.