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

Enlaces relevantes