ExpertiDict

Python · Intermediário · Inglês · Técnico

property

/ˈpɹɑpɚɾi/substantivo

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.

Veja também

Todos os termos de Python