Programador Leigo
⚡ 60 segundos classes

Usar @property para getters e setters

@property transforma métodos em atributos. Acesso limpo com validação por trás.

property.py
class Circulo:
    def __init__(self, raio):
        self._raio = raio

    @property
    def raio(self):
        return self._raio

    @raio.setter
    def raio(self, valor):
        if valor < 0:
            raise ValueError('Raio negativo')
        self._raio = valor

c = Circulo(5)
print(c.raio)  # 5
c.raio = 10    # OK
# c.raio = -1  # ValueError!

Compartilhar