⚡ 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!