Конструкція property () повертає атрибут property.
Синтаксис property():
властивість (fget = None, fset = None, fdel = None, doc = None)
Рекомендоване читання: Python @property: як ним користуватися та чому?
Параметри властивості ()
property()Приймає чотири додаткових параметрів:
- fget (необов’язково) - Функція отримання значення атрибута. За замовчуванням 
None. - fset (необов’язково) - Функція встановлення значення атрибута. За замовчуванням 
None. - fdel (необов’язково) - Функція видалення значення атрибута. За замовчуванням 
None. - doc (необов’язково) - рядок, що містить документацію (рядок документа) для атрибута. За замовчуванням 
None. 
Повернене значення з властивості ()
property() повертає атрибут властивості із заданого геттера, сеттера та делетера.
- Якщо аргументів не вказано, 
property()повертає атрибут базової властивості, який не містить жодного геттера, сеттера чи видаляча. - Якщо документ не надається, 
property()береться документ рядка функції отримання. 
Приклад 1: Створіть атрибут за допомогою getter, setter та deleter
 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 # Set property to use get_name, set_name # and del_name methods name = property(get_name, set_name, del_name, 'Name property') p = Person('Adam') print(p.name) p.name = 'John' del p.name
Вихідні дані
Отримання імені Ім'я: Адам Встановлення імені Джон Видалення імені
Тут _name використовується як приватна змінна для зберігання імені Person.
Ми також встановили:
- метод отримання, 
get_name()щоб отримати ім'я людини, - метод 
set_name()встановлення для встановлення імені особи, - метод 
del_name()видалення для видалення імені особи. 
Тепер ми встановлюємо нову назву атрибута властивості, викликаючи property()метод.
Як показано в програмі, посилання на p.nameвнутрішні виклики get_name()як getter, set_name()setter і del_name()deleter через друкований вивід, присутній усередині методів.
Приклад 2: Використання @property декоратора
Замість того, щоб використовувати property(), ви можете використовувати декоратор Python @propertyдля призначення геттера, сеттера та видалення.
 class Person: def __init__(self, name): self._name = name @property def name(self): print('Getting name') return self._name @name.setter def name(self, value): print('Setting name to ' + value) self._name = value @name.deleter def name(self): print('Deleting name') del self._name p = Person('Adam') print('The name is:', p.name) p.name = 'John' del p.name
Вихідні дані
Отримання імені Ім'я: Адам Встановлення імені Джон Видалення імені
Тут замість використання property()ми використали @propertyдекоратор.
По-перше, ми вказуємо, що name()метод також є атрибутом Person. Це робиться за допомогою @propertyметоду getter, як показано в програмі.
Далі ми використовуємо ім’я атрибута, щоб вказати сеттер і видаляч.
Це робиться за допомогою @name.setterметоду встановлення та @name.deleterметоду видалення.
Зверніть увагу, ми використовували один і той же метод name()з різними визначеннями для визначення геттера, сеттера та делетера.
Тепер, щоразу, коли ми використовуємо p.name, він внутрішньо викликає відповідний геттер, сеттер і делетер, як показано на друкованому виводі, що знаходиться всередині методу.








