Requisitos previos: guión bajo (_) en Python
Una variable es un identificador que asignamos a una ubicación de memoria que se utiliza para contener valores en un programa de computadora. Las variables son ubicaciones de almacenamiento con nombre en el programa. Según la especificación de acceso, las variables pueden ser públicas, protegidas y privadas en una clase.
Las variables protegidas son aquellos miembros de datos de una clase a los que se puede acceder dentro de la clase y las clases derivadas de esa clase. En Python, no existen variables de instancia «Públicas». Sin embargo, usamos el símbolo de guión bajo ‘_’ para determinar el control de acceso de un miembro de datos en una clase. Cualquier miembro que tenga como prefijo un guión bajo debe tratarse como una parte no pública de la API o de cualquier código de Python, ya sea una función, un método o un miembro de datos.
Ejemplo 1:
# program to illustrate protected # data members in a class # Defining a class class 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()
Producción:
Name: R2J Roll: 1706256
Ejemplo 2: durante la herencia
# 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 class obj.displaySides() # calling public member # functions of the class obj.calculateArea()
Producción:
Length: 80 Breadth: 50 Area: 4000
En el ejemplo anterior, se accede a las variables protegidas _length
y _breadth
de la superclase Shape
dentro de la clase mediante una función miembro displaySides()
y se puede acceder desde la clase Rectangle
que se deriva de la Shape
clase. La función miembro calculateArea()
de clase Rectangle
accede a los miembros de datos protegidos _length
y _breadth
de la superclase Shape
para calcular el área del rectángulo.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA