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