Variable protegida en Python

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 _lengthy _breadthde la superclase Shapedentro de la clase mediante una función miembro displaySides()y se puede acceder desde la clase Rectangleque se deriva de la Shapeclase. La función miembro calculateArea()de clase Rectangleaccede a los miembros de datos protegidos _lengthy _breadthde la superclase Shapepara 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *