๐ Introduction to Classes and Instances in Python ๐๐#
In Python (and many other languages), classes and instances form the backbone of object-oriented programming.
What Is a Class?#
A class is a blueprint or template for creating objects. It defines:
Attributes (data) that describe the object.
Methods (functions) that define the objectโs behaviors or actions.
Key idea: A class is not an actual thing in the program; itโs the โplanโ from which objects are built.
Class Example#
class Vehicle:
def __init__(self, make, model):
self.make = make
self.model = model
def start_engine(self):
print(f"{self.make} {self.model} engine started!")
In this example:
init
is the constructor that defines how each Vehicle object is initialized.start_engine
is a method available to every Vehicle object.
What Is an Instance?#
An instance (or object) is a specific realization of a class. It contains actual data in its attributes and can call the class methods.
Instance Example#
my_car = Vehicle("Toyota", "Corolla")
my_car.start_engine()
Toyota Corolla engine started!
my_car
is an instance of theVehicle
class.It has
make = "Toyota"
andmodel = "Corolla"
.Calling
my_car.start_engine()
will print โToyota Corolla engine started!โ.
Accessing Attributes and Methods#
Once you create an instance, you can:
Read or modify its attributes.
Invoke its methods.
my_car.model = "Camry" # Changing the model
print(my_car.model) # Prints "Camry"
my_car.start_engine() # Prints "Toyota Camry engine started!"
Camry
Toyota Camry engine started!
Multiple Instances#
Each instance has its own unique set of attribute values. For example:
car_a = Vehicle("Honda", "Civic")
car_b = Vehicle("Ford", "Focus")
car_a.start_engine() # "Honda Civic engine started!"
car_b.start_engine() # "Ford Focus engine started!"
Honda Civic engine started!
Ford Focus engine started!
They are both Vehicles, but their data differs (make
and model
), and they behave independently.
Why Classes and Instances?#
Organization Group data (attributes) and behavior (methods) in one logical unit.
Reusability Create multiple instances from a single class definition without duplicating code.
Maintainability Changing the class definition automatically applies the update to all instances.