Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
@propiedad | Encapsulamiento
Programación Orientada a Objetos en Python a Fondo
course content

Contenido del Curso

Programación Orientada a Objetos en Python a Fondo

Programación Orientada a Objetos en Python a Fondo

1. Conceptos de POO
2. Herencia
3. Encapsulamiento
4. Polimorfismo y Abstracción
5. Métodos Mágicos

book@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.

123456789101112131415
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)
copy

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.

¿Cómo definir una nueva propiedad?

¿Cómo definir una nueva propiedad?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 7
some-alt