Pre-loader


Свойства (Property) в об’єктах Python

У Python для вказання свойств класу використовують атрибути класу та декоратори. Атрибути класу визначаються без використання декораторів, але для задання специфічної поведінки атрибутів, таких як властивості (properties), використовують декоратор property.

Ось приклад створення класу з атрибутами та властивістю:

class MyClass:
    def __init__(self, x):
        self._x = x  # _x - це приватний атрибут

    @property
    def x(self):
        """Це властивість для отримання значення x."""
        return self._x

    @x.setter
    def x(self, value):
        """Це властивість для встановлення значення x."""
        if value < 0:
            raise ValueError("Значення x повинно бути не від’ємним")
        self._x = value

    @x.deleter
    def x(self):
        """Це властивість для видалення значення x."""
        print("Значення x видалено")
        del self._x

# Використання класу
obj = MyClass(10)

# Отримання значення x за допомогою властивості
print(obj.x)  # Виводить 10

# Встановлення значення x за допомогою властивості
obj.x = 20
print(obj.x)  # Виводить 20

# Спроба встановлення від’ємного значення x
# Викличе ValueError
# obj.x = -5

# Видалення значення x за допомогою властивості
# del obj.x

У цьому прикладі атрибут _x є приватним, і для отримання та встановлення його значення використовується властивість x. Декоратор property дозволяє створити цю властивість, яка може мати методи для отримання (getter), встановлення (setter) та видалення (deleter) значення.

Зверніть увагу, що ім'я властивості (x в цьому випадку) має бути однаковим для всіх трьох методів (getter, setter, deleter).

Автоматизація Property в PyCharm

У PyCharm ви можете використовувати комбінацію клавіш для швидкого створення методу setter або інших методів. Ось як це можна зробити:

1. Поставте курсор на ім'я властивості, для якої ви хочете створити метод setter.

2. Натисніть комбінацію клавіш Alt + Insert (або в залежності від вашої конфігурації, це може бути Cmd + N на macOS або Ctrl + N на Windows/Linux).

3. У випадаючому меню оберіть "Setter" (або "Getter and Setter", якщо вам потрібно створити обидва методи).

4. PyCharm автоматично згенерує метод setter для вибраної властивості.

Ця функція значно полегшує створення методів setter та getter для властивостей у класах.

Автор: Рудюк С.А. 2023. K2 Cloud ERP.