Функція staticmethod() в Python

 3550

Функція staticmethod() повертає статичний метод для цієї функції.

Наприклад:

Результат:

Sum: 12

Синтаксис функції staticmethod()

Примітка: У нових версіях Python ви можете використати декоратор @staticmethod замість цієї функції.

Синтаксис @staticmethod наступний:

Параметри функції staticmethod()

Функція staticmethod() приймає один параметр:

  function — функція, яку необхідно перетворити в статичний метод.

Значення, яке повертає функція staticmethod()

Функція staticmethod() повертає статичний метод для функції, яка передана в якості аргументу.

Що таке статичний метод?

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

Різниця між статичним методом та методом класу полягає в наступному:

   статичні методи нічого не знають про клас і працюють лише з параметрами;

   метод класу працює із класом, оскільки його параметром завжди є сам клас.

Вони можуть бути спричинені як самим класом, так і його об’єктом:

або

Приклад №1: Створення статичного методу за допомогою функції staticmethod()

Результат:

The sum is: 15

Коли слід використовувати статичні методи?

1. Допоміжна функція для класу

Статичні методи мають обмежений варіант використання, оскільки, як і методи класу або будь-які інші методи всередині класу, вони не можуть отримати доступ до властивостей самого класу.

Однак, коли потрібна допоміжна функція, яка не звертається до жодних властивостей класу, але потрібна її приналежність до класу, слід використовувати статичні методи.

Приклад №2: Створення допоміжної функції в якості статичного методу

Результат:

Equal

Тут у нас є клас Dates, який працює лише з датами з тире. Проте в нашій попередній базі даних всі дати були розділені скісною рискою. Щоб перетворити дати зі скісною рискою на дати з тире, ми створили допоміжний метод toDashDate() в межах класу Dates.

Це статичний метод, тому що йому не потрібно мати доступ до будь-яких властивостей класу Dates, а потрібні лише параметри. Ми можемо також створити метод toDashDate() поза класом, але оскільки він працює тільки з датами, логічно зберігати його всередині класу Dates.

2. Наявність єдиної реалізації

Статичні методи використовуються, коли ми не хочемо, щоб дочірні класи змінювали/перевизначали конкретну реалізацію методу батьківського класу.

Приклад №3: Як працює спадкування зі статичним методом?

Результат:

Equal

Тут ми не хочемо, щоб дочірній клас DatesWithSlashes перевизначав статичний допоміжний метод toDashDate() батьківського класу Dates.

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (2 оцінок, середня: 5,00 з 5)
Завантаження...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *