Встроенная функция Python property()

Из документации Python 3

Возвращает атрибут свойства.

Introduction

Функция property() используется для создания атрибутов свойств. Атрибут свойства — это особый вид атрибута, который имеет методы getter, setter и delete. Это позволяет добавлять логику при получении, установке или удалении значения атрибута.

Чаще используется декоратор @property, который является более удобным способом использования property().

Example

Вот пример использования property() для создания атрибута только для чтения:

class Person:
    def __init__(self, name):
        self._name = name

    def get_name(self):
        print("Getting name")
        return self._name

    # Создаем свойство
    name = property(get_name)

p = Person("John")
print(p.name)  # Это вызывает get_name()
Getting name
John

Note: p.name = "Jane" вызовет AttributeError, потому что нет setter.

А вот более распространенный способ сделать это с помощью декоратора @property:

class Person:
    def __init__(self, name):
        self._name = name

    @property
    def name(self):
        print("Getting name")
        return self._name

p = Person("John")
print(p.name)
Getting name
John