Open In App

Why Python Uses ‘Self’ as Default Argument

Last Updated : 16 Feb, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Python, a versatile and widely used programming language, follows object-oriented principles in its design. One of the distinctive features of Python is the use of the keyword ‘self’ as a default argument in class methods. This choice plays a crucial role in maintaining the integrity of object-oriented programming (OOP) concepts and ensures proper handling of instance variables and methods. In this article, we’ll delve into why Python uses ‘self’ as a default argument.

Why Python Uses ‘Self’ As A Default Argument?

In Python, the ‘self‘ keyword is used to reference the instance of a class within its methods. Unlike some other programming languages, Python does not implicitly pass the instance to the method; instead, it requires the explicit use of ‘self.’ This explicit reference to the instance allows for better readability, clarity, and adherence to OOP principles.

Advantages

  • Instance Clarity: ‘self’ specifies the instance on which a method operates, avoiding ambiguity.
  • Attribute Access: Ensures direct access to instance attributes within class methods.
  • Encapsulation Aid: Supports encapsulation by linking methods to specific instances.
  • Pythonic Convention: Adheres to Pythonic style, enhancing code readability and consistency.

Example of Using ‘Self’ As A Default Argument in Python

Below, are the example of using ‘Self‘ As A Default Argument in Python.

Example 1: Object Initialization & Method Invocation

In this example, ‘self’ is used to refer to the instance of the class, ‘gfg_instance.’ Without the explicit use of ‘self,’ it would be unclear which instance the method is referring to, and the code might become ambiguous.

Python3




class GeeksforGeeks:
    def __init__(self, topic):
        self.topic = topic
 
    def display_topic(self):
        print("Topic:", self.topic)
 
# Creating an instance of GeeksforGeeks
gfg_instance = GeeksforGeeks("Python")
 
# Calling the display_topic method
gfg_instance.display_topic()


Output

Topic: Python



Example 2: Circle Class for Area Calculation Example

In this example, ‘self’ is crucial for accessing the ‘radius’ attribute of the specific instance ‘circle_instance.’ The use of ‘self’ ensures that the method operates on the attributes of the correct instance.

Python3




class Circle:
    def __init__(self, radius):
        self.radius = radius
 
    def calculate_area(self):
        area = 3.14 * self.radius ** 2
        return area
 
# Creating an instance of Circle
circle_instance = Circle(5)
 
# Calling the calculate_area method
print("Area of the circle:", circle_instance.calculate_area())


Output

Area of the circle: 78.5



Conclusion

In conclusion , the use of ‘self’ as a default argument in Python class methods is a fundamental aspect of maintaining the object-oriented paradigm. It enhances code readability, ensures explicit reference to the instance, and supports the principles of encapsulation. By using ‘self,’ Python encourages a clean and organized approach to programming, making it easier for developers to understand and maintain their code.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads