×

Python Tutorial

Python Basics

Python I/O

Python Operators

Python Conditions & Controls

Python Functions

Python Strings

Python Modules

Python Lists

Python OOPs

Python Arrays

Python Dictionary

Python Sets

Python Tuples

Python Exception Handling

Python NumPy

Python Pandas

Python File Handling

Python WebSocket

Python GUI Programming

Python Image Processing

Python Miscellaneous

Python Practice

Python Programs

Why Python Uses 'Self' as Default Argument

Last Updated : May 03, 2025

In Python, the keyword self is used as the first parameter of instance methods to represent the instance of the class. It allows access to the attributes and methods of the class. In this chapter, we will understand why Python uses self and how it works with the help of examples.

What is self in Python?

self refers to the current instance of the class. It is automatically passed to instance methods when they are called on an object. Using self, you can access and modify the object's properties from within its methods.

Example

In this example, we define a Student class and use self to access instance variables.

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

    def show_details(self):
        print(f"Name: {self.name}, City: {self.city}")

# Creating object
student1 = Student("Amit", "Delhi")

# Calling method
student1.show_details()

The output of the above code would be:

Name: Amit, City: Delhi

Why is self Needed?

Python does not use the this keyword like some other programming languages. It uses self explicitly to make it clear that the method belongs to the instance and not the class. This helps avoid confusion.

Example

In this example, self helps differentiate between instance variables and method parameters.

class Employee:
    def __init__(self, name):
        self.name = name  # self.name is the instance variable

    def greet(self):
        print(f"Hello, my name is {self.name}")

# Creating object
emp1 = Employee("Priya")
emp1.greet()

The output of the above code would be:

Hello, my name is Priya

self is Just a Convention

The word self is not a keyword in Python. You can use any valid variable name in its place, but using self is a widely accepted convention.

Example

In this example, we use a different name instead of self, but it still works the same way.

class Car:
    def __init__(this, brand):
        this.brand = brand

    def show_brand(this):
        print(f"Brand: {this.brand}")

# Creating object
car1 = Car("Mahindra")
car1.show_brand()

The output of the above code would be:

Brand: Mahindra

Accessing Other Methods with self

You can also call other methods of the same class using self.

Example

In this example, we call one instance method from another using self.

class Teacher:
    def __init__(self, name):
        self.name = name

    def display(self):
        print(f"Teacher's name is {self.name}")

    def welcome(self):
        print("Welcome!")
        self.display()

# Creating object
teacher1 = Teacher("Suresh")
teacher1.welcome()

The output of the above code would be:

Welcome!
Teacher's name is Suresh

Exercise

Select the correct option to complete each statement about the use of self in Python methods.

  1. The self keyword in a class method refers to the ___.
  2. Using self allows access to ___ within the class.
  3. In Python, the self parameter ___ be passed explicitly when calling a method on an object.

Advertisement
Advertisement

Comments and Discussions!

Load comments ↻


Advertisement
Advertisement
Advertisement

Copyright © 2025 www.includehelp.com. All rights reserved.