Python object

Last Updated : 16 Jul, 2026

An object is an instance of a class. It represents a real-world entity and contains its own data (attributes) and functions (methods) defined by the class. A single class can be used to create multiple objects, each with its own set of values.

Creating an object

An object is created by calling the class name, just like calling a function. The values passed during object creation are used to initialize the object's attributes.

Here, we create an object of the Car class and access its attributes.

Python
class Car:
    def __init__(self, model, price):
        self.model = model
        self.price = price

car1 = Car("R8", 100000)
print(car1.model)
print(car1.price)

Output
R8
100000

Explanation: statement Car("R8", 100000) creates a new object named car1. The __init__() method initializes the model and price attributes, which are accessed using car1.model and car1.price, respectively.

Accessing class members

Class members such as attributes and methods are accessed using the dot (.) operator. Once an object is created, it can be used to access its data and call its methods.

Example 1: Here, we create an object and call its methods to display and update its data.

Python
class Car:
    def __init__(self, model):
        self.model = model

    def show_model(self):
        print("Model:", self.model)

    def update_model(self, new_model):
        self.model = new_model

car1 = Car("R8")
car1.show_model()
car1.update_model("A6")
car1.show_model()

Output
Model: R8
Model: A6

Explanation: object car1 calls the show_model() method to display the current model. After calling update_model("A6"), the value of self.model is updated, and show_model() displays the new model.

Example 2: Here, we access the attributes of multiple objects directly using the dot (.) operator.

Python
class Student:
    def __init__(self, name, marks):
        self.name = name
        self.marks = marks

student1 = Student("Emma", 92)
student2 = Student("Daniel", 88)

print(student1.name, student1.marks)
print(student2.name, student2.marks)

Output
Emma 92
Daniel 88

Explanation: objects student1 and student2 store different values for the name and marks attributes. These attributes are accessed directly using dot notation, such as student1.name and student2.marks.

Self keyword in objects

The self keyword refers to the current object of a class. It is used inside class methods to access and modify the attributes and methods of that object.

Here, we use the self keyword to access an object's attributes inside a method.

Python
class Employee:
    def __init__(self, name, department):
        self.name = name
        self.department = department

    def display(self):
        print(self.name, "works in", self.department)

employee = Employee("Emma", "Sales")
employee.display()

Output
Emma works in Sales

Explanation: self keyword refers to the employee object. The attributes self.name and self.department are initialized in __init__() and accessed inside the display() method.

Deleting an Object

The del keyword is used to delete an object. Once an object is deleted, it can no longer be accessed using its variable name.

Here, we delete an object using the del keyword and then try to access it.

Python
class Employee:
    def __init__(self, name):
        self.name = name

employee = Employee("Emma")
del employee
print(employee.name)

Output

ERROR!
Traceback (most recent call last):
File "<main.py>", line 7, in <module>
NameError: name 'employee' is not defined. Did you mean: 'Employee'?

Explanation: statement del employee removes the reference to the object. Therefore, attempting to access employee.name raises a NameError because the variable employee no longer exists.

Comment