property(fget=None, fset=None, fdel=None, doc=None)
Функция property()
возвращает атрибут свойства.
Параметры
Функция property()
принимает четыре необязательных параметра:
fget
(необязательно) — функция для получения значения атрибута. По умолчанию None.fset
(необязательный) — функция установки значения атрибута. По умолчанию None.fdel
(необязательно) — функция удаления значения атрибута. По умолчанию None.doc
(необязательно) — строка, содержащая документацию (docstring
) для атрибута. По умолчаниюNone
.
Возвращаемое значение
Функция property()
возвращает атрибут свойства из заданных методов получения, установки и удаления.
- Если аргументы не указаны, свойство () возвращает базовый атрибут свойства, который не содержит никаких методов получения, установки или удаления.
- Если
doc
не указан,property()
берет строку документации функции-получателя.
Примеры
class Person:
def __init__(self, name):
self._name = name
def get_name(self):
print('Getting name')
return self._name
def set_name(self, value):
print('Setting name to ' + value)
self._name = value
def del_name(self):
print('Deleting name')
del self._name
# Установите свойство для использования get_name, set_name
# и методы del_name
name = property(get_name, set_name, del_name, 'Имя свойства')
p = Person('Сергей')
print(p.name)
p.name = 'Дмитрий'
del p.name
# Результат
Getting name
Сергей
Setting name to Дмитрий
Deleting name