logo

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