Função built-in property() do Python
Retorna um atributo de propriedade.
Introdução
A função property() é usada para criar atributos de propriedade. Um atributo de propriedade é um tipo especial de atributo que possui métodos getter, setter e delete. Isso permite que você adicione lógica à obtenção, definição ou exclusão do valor de um atributo.
É mais comum usar o decorador @property, que é uma maneira mais conveniente de usar property().
Exemplo
Aqui está um exemplo de como usar property() para criar um atributo somente leitura:
class Person:
def __init__(self, name):
self._name = name
def get_name(self):
print("Obtendo nome")
return self._name
# Cria uma propriedade
name = property(get_name)
p = Person("John")
print(p.name) # Isso chama get_name()
Obtendo nome
John
Nota: p.name = "Jane" levantaria um AttributeError porque não há um setter.
E aqui está a maneira mais comum de fazer isso com o decorador @property:
class Person:
def __init__(self, name):
self._name = name
@property
def name(self):
print("Obtendo nome")
return self._name
p = Person("John")
print(p.name)
Obtendo nome
John