Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
@propriedade | Encapsulamento
Programação Orientada a Objetos em Python Avançado
course content

Conteúdo do Curso

Programação Orientada a Objetos em Python Avançado

Programação Orientada a Objetos em Python Avançado

1. Conceitos de POO
2. Herança
3. Encapsulamento
4. Polimorfismo e Abstração
5. Métodos Mágicos

book@propriedade

@property é um decorador que modifica o método dentro de uma classe para propriedade da classe.

Para criar a propriedade, você deve criar um método com o decorador @property acima.

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

No exemplo acima, você pode ver uma sala de cinema que possui atributos rows e seats_in_row. A propriedade capacity retorna o número total de assentos na sala. Não faria sentido criar um atributo separado capacity, pois se mudássemos o número de rows, teríamos valores conflitantes. Especificamente, nenhuma ação é realizada com a classe; apenas uma das propriedades da sala é retornada.

Propriedades devem ter uma lógica específica: elas devem retornar um certo atributo da classe, diferentemente de métodos que são usados para realizar ações específicas com a classe.

Como definir uma nova propriedade?

Como definir uma nova propriedade?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 7
some-alt