Методи класу, статичні методи та методи екземпляра в Python: розуміння та використання

Методи класу, статичні методи та методи екземпляра в Python: розуміння та використання

5 Березня 2024 в 19:31 45

В програмуванні на Python існують різні типи методів, які можна використовувати при створенні класів. Серед них особливе місце займають методи класу, статичні методи та методи екземпляра. Розуміння їхнього призначення та використання може значно полегшити написання коду та зробити його більш структурованим.

Методи екземпляра

Методи екземпляра – це ті методи, які викликаються на конкретних об’єктах класу. Їх головне призначення – працювати з конкретними властивостями об’єкта. У методах екземпляра доступ до властивостей об’єкта здійснюється через ключове слово self. Наприклад, у класі Rectangle метод get_area, який обчислює площу прямокутника, є методом екземпляра:

Цей метод можна викликати на конкретному об’єкті класу Rectangle, і він буде повертати площу цього прямокутника.

Статичні методи

Статичні методи – це методи, які не мають доступу до властивостей об’єкта або класу. Вони не отримують self або cls як перший аргумент. Статичні методи зазвичай використовуються, коли функція пов’язана з класом, але не з конкретними екземплярами класу. Вони дозволяють організувати код, який логічно пов’язаний з класом, але не використовує властивості об’єктів класу або сам клас. Наприклад, метод which_is_bigger в класі Rectangle порівнює площі двох прямокутників і повертає більший:

Цей метод можна викликати без створення об’єктів класу Rectangle, оскільки він не залежить від конкретних екземплярів класу.

Методи класу

Методи класу схожі на статичні методи, але вони мають доступ до класу через аргумент cls. Вони можуть змінювати стан класу, але не мають доступу до конкретних екземплярів класу. Використання методів класу зазвичай виправдано, коли потрібно змінити стан самого класу або коли поведінка методу пов’язана з класом в цілому, а не з конкретними екземплярами. У класі Rectangle метод set_default_dim встановлює нові значення для константи default_dimension:

Цей метод можна викликати на самому класі Rectangle, і він змінить значення константи для всіх екземплярів класу.

В цілому, розуміння відмінностей між методами класу, статичними методами та методами екземпляра допомагає краще організувати код та використовувати його відповідно до потреб програми.