Contenido del Curso
Programación Orientada a Objetos en Python a Fondo
Programación Orientada a Objetos en Python a Fondo
@propiedad
@property
es un decorador que modifica el método dentro de una clase a la propiedad de la clase.
Para crear la propiedad, debes crear un método con el decorador @property
anterior.
class CinemaHall: def __init__(self, rows, seats_in_row): self.rows = rows self.seats_in_row = seats_in_row @property def capacity(self): return self.rows * self.seats_in_row hall = CinemaHall(24, 12) print(hall.capacity) hall.rows = 5 hall.seats_in_row = 11 print(hall.capacity)
En el ejemplo anterior, puede ver una sala de cine que tiene los atributos rows
y seats_in_row
. La propiedad capacidad
devuelve el número total de asientos de la sala. No tendría sentido crear un atributo capacidad
separado porque si cambiamos el número de filas
, tendríamos valores contradictorios. En concreto, no se realiza ninguna acción con la clase; sólo se devuelve una de las propiedades de la sala.
Las propiedades deben tener una lógica específica: deben devolver un determinado atributo de la clase, a diferencia de los métodos que se utilizan para realizar acciones específicas con la clase.
¡Gracias por tus comentarios!