Python · Intermediário · Inglês · Técnico
property
Decorator que transforma um método em atributo calculado, acessado sem parênteses. Permite validar ou derivar valores mantendo a sintaxe simples de obj.nome.
Onde usar
Permite começar com um atributo público e, depois, adicionar validação sem quebrar quem usa a classe. Em Python, getters e setters explícitos como em Java são vistos como desnecessários.
Em código
class Caixa:
def __init__(self, lado):
self.lado = lado
@property
def area(self):
return self.lado ** 2
print(Caixa(3).area)Exemplos
Make it a property so callers don't need parentheses.
Faça uma property para quem chama não precisar de parênteses.
The setter validates the value through a property.
O setter valida o valor por meio de uma property.
Cuidado
Não faça trabalho pesado numa property, pois quem lê obj.valor não espera uma chamada cara.