Función incorporada property() de Python
De la documentación de Python 3
Devuelve un atributo de propiedad.
Introducción
La función property() se utiliza para crear atributos de propiedad. Un atributo de propiedad es un tipo especial de atributo que tiene métodos getter, setter y delete. Esto le permite agregar lógica a la obtención, configuración o eliminación del valor de un atributo.
Es más común usar el decorador @property, que es una forma más conveniente de usar property().
Ejemplo
Aquí hay un ejemplo de cómo usar property() para crear un atributo de solo lectura:
class Person:
def __init__(self, name):
self._name = name
def get_name(self):
print("Obteniendo nombre")
return self._name
# Crear una propiedad
name = property(get_name)
p = Person("John")
print(p.name) # Esto llama a get_name()
Getting name
John
Nota: p.name = "Jane" generaría un AttributeError porque no hay un setter.
Y aquí está la forma más común de hacerlo con el decorador @property:
class Person:
def __init__(self, name):
self._name = name
@property
def name(self):
print("Obteniendo nombre")
return self._name
p = Person("John")
print(p.name)
Getting name
John