Protected variable in Python

10 Jan, 2020
Prerequisites: Underscore ( _ ) in Python
A Variable is an identifier that we assign to a memory location which is used to hold values in a computer program. Variables are named locations of storage in the program. Based on access specification, variables can be public, protected and private in a class.
Protected variables are those data members of a class that can be accessed within the class and the classes derived from that class. In Python, there is no existence of “Public” instance variables. However, we use underscore ‘_’ symbol to determine the access control of a data member in a class. Any member prefixed with an underscore should be treated as a non-public part of the API or any Python code, whether it is a function, a method or a data member.
Example 1:
# program to illustrate protected# data members in a class     # Defining a classclass Geek:           # protected data members     _name = "R2J"    _roll = 1706256          # public member function     def displayNameAndRoll(self):           # accessing protected data members         print("Name: ", self._name)         print("Roll: ", self._roll)     # creating objects of the class         obj = Geek()   # calling public member # functions of the class obj.displayNameAndRoll() 
Output:
Name:  R2J
Roll:  1706256

Example 2: During Inheritance
# program to illustrate protected# data members in a class     # super class class Shape:           # constructor     def __init__(self, length, breadth):         self._length = length        self._breadth = breadth               # public member function     def displaySides(self):           # accessing protected data members         print("Length: ", self._length)         print("Breadth: ", self._breadth)     # derived class class Rectangle(Shape):       # constructor     def __init__(self, length, breadth):           # Calling the constructor of        # Super class        Shape.__init__(self, length, breadth)               # public member function     def calculateArea(self):                               # accessing protected data members of super class         print("Area: ", self._length * self._breadth)                         # creating objects of the # derived class         obj = Rectangle(80, 50)   # calling derived member # functions of the classobj.displaySides()  # calling public member# functions of the class obj.calculateArea() 
Output:
Length:  80
Breadth:  50
Area:  4000

In the above example, the protected variables _length and _breadth of the super class Shape are accessed within the class by a member function displaySides() and can be accessed from class Rectangle which is derived from the Shape class. The member function calculateArea() of class Rectangle accesses the protected data members _length and _breadth of the super class Shape to calculate the area of the rectangle.
Python-OOP
python-oop-concepts
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Different ways to create Pandas Dataframe
Enumerate() in Python
Read a file line by line in Python
Python String | replace()
How to Install PIP on Windows ?
*args and **kwargs in Python
Iterate over a list in Python
Python Classes and Objects
Convert integer to string in Python
Python OOPs Concepts