Curso de Complejidad Algorítmica con Python

Toma las primeras clases gratis

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

Las propiedades permiten controlar el acceso a los atributos privados de la instancia. Dos de los tipos más comunes son los getters y los setters.

Los getters permiten obtener el dato privado. Se definen con un decorador y con un método que devuelva el dato. Ejemplo:

@property
def mostrar(self):
    return self._atributo_privado
 

Los setters permiten cambiar los datos. Se definen con un decordador y poniendo .setter al final del nombre. A continuación, se escribe un método en donde se establezcan las condiciones para cambiar el dato privado. Ejemplo:

@cambiar_atributo.setter
def cambiar_atributo(self, permitir):
    if permitir:
       self._atributo_privado = "un nuevo dato"
 

Para entender su funcionamiento, veamos el siguiente ejemplo:

Imagina que en una pizzeria tienen un ingrediente especial para clientes VIP, y solo al poner una clave se autoriza la preparación de la pizza con este ingrediente. Por lo tanto, para la pizza se crea una clase en donde por defecto ese ingrediente no se permita.


class Pizza:
  def __init__(self, ingredientes):
    self.ingredientes = ingredientes
    self._permitir_ingrediente_especial = False

  @property  # ---> es el getter 
  def permitir_ingrediente_especial(self):
    return self._permitir_ingrediente_especial

  @permitir_ingrediente_especial.setter  # ----> es el setter
  def permitir_ingrediente_especial(self, permitir):
        if permitir: 
            contraseña = input("Escriba la contraseña: ")  
            if contraseña == "PlAtZi":
                self._permitir_ingrediente_especial = True
            else: 
                raise ValueError("Alerta! Intruso")

De esta manera, se asegura que solo al introducir la clave de acceso, el ingrediente especial pueda ser utilizado.

En la consola podemos verificar el código de la siguiente manera:

>>>pizza_VIP = Pizza(['queso', 'tomate'])
>>>print(pizza_VIP.permitir_ingrediente_especial)
False
>>>pizza_VIP.permitir_ingrediente_especial = True
Escriba la contraseña: PlAtZi
Acceso Confirmado. Se permite usar el ingrediente especial
>>>print(pizza_VIP.permitir_ingrediente_especial)
True

Referencia:
Curso de Python de SoloLearn

Curso de Complejidad Algorítmica con Python

Toma las primeras clases gratis

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

0 Comentarios

para escribir tu comentario

Artículos relacionados