In the last tutorial, we learned about Python OOP. We know that Python also supports the concept of objects and classes.
An object is simply a collection of data (variables) and methods (functions). Similarly, a class is a blueprint for that object.
Before we learn about objects, let's first learn about classes in Python.
Python Classes
A class is considered a blueprint of objects.
We can think of the class as a sketch (prototype) of a house. It contains all the details about the floors, doors, windows, etc.
Based on these descriptions, we build the house; the house is the object.
Since many houses can be made from the same description, we can create many objects from a class.
Define Python Class
We use the class keyword to create a class in Python. For example,
class ClassName:
# class definition
Here, we have created a class named ClassName.
Let's see an example,
class Bike:
name = ""
gear = 0
Here,
Bike- the name of the classname/gear- variables inside the class with default values""and 0 respectively.
Note: The variables inside a class are called attributes.
Python Objects
An object is called an instance of a class.
Suppose Bike is a class then we can create objects like bike1, bike2, etc from the class.
Here's the syntax to create an object.
objectName = ClassName()
Let's see an example,
# create class
class Bike:
name = ""
gear = 0
# create objects of class
bike1 = Bike()
Here, bike1 is the object of the class. Now, we can use this object to access the class attributes.
Access Class Attributes Using Objects
We use the . notation to access the attributes of a class. For example,
# modify the name property
bike1.name = "Mountain Bike"
# access the gear property
bike1.gear
Here, we have used bike1.name and bike1.gear to change and access the value of name and gear attributes, respectively.
Example 1: Python Class and Objects
# define a class
class Bike:
name = ""
gear = 0
# create object of class
bike1 = Bike()
# access attributes and assign new values
bike1.gear = 11
bike1.name = "Mountain Bike"
print(f"Name: {bike1.name}, Gears: {bike1.gear} ")
Output
Name: Mountain Bike, Gears: 11
In the above example, we have defined the class named Bike with two attributes: name and gear.
We have also created an object bike1 of the class Bike.
Finally, we have accessed and modified the properties of an object using the . notation.
Create Multiple Objects of Python Class
We can also create multiple objects from a single class. For example,
# define a class
class Employee:
# define a property
employee_id = 0
# create two objects of the Employee class
employee1 = Employee()
employee2 = Employee()
# access property using employee1
employee1.employeeID = 1001
print(f"Employee ID: {employee1.employeeID}")
# access properties using employee2
employee2.employeeID = 1002
print(f"Employee ID: {employee2.employeeID}")
Output
Employee ID: 1001 Employee ID: 1002
In the above example, we have created two objects employee1 and employee2 of the Employee class.
Python Methods
We can also define a function inside a Python class. A Python function defined inside a class is called a method.
Let's see an example,
# create a class
class Room:
length = 0.0
breadth = 0.0
# method to calculate area
def calculate_area(self):
print("Area of Room =", self.length * self.breadth)
# create object of Room class
study_room = Room()
# assign values to all the properties
study_room.length = 42.5
study_room.breadth = 30.8
# access method inside class
study_room.calculate_area()
Output
Area of Room = 1309.0
In the above example, we have created a class named Room with:
- Attributes: