Встроенная функция Python property()
Возвращает атрибут свойства.
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