Курс Python → Методы classmethod и staticmethod
Метод classmethod в Python используется для создания методов, которые могут быть вызваны как для класса, так и для экземпляра этого класса. Когда мы используем classmethod, первым аргументом метода будет передан класс вместо экземпляра. Это позволяет нам работать с классом, а не с конкретным объектом. Объект метода classmethod сравнивается равным, когда обе функции равны, а связанные объекты одинаковы. Например, o1.method == o1.method верно, хотя это не один и тот же объект в памяти.
Еще одним полезным методом является staticmethod, который преобразует функцию в дескриптор «no-op», который возвращает функцию как есть. Это означает, что объекты метода никогда не создаются, поэтому сравнение с использованием оператора is будет верным. Таким образом, при использовании staticmethod мы можем вызывать методы класса, не создавая экземпляр класса.
class MyClass:
@classmethod
def class_method(cls):
return cls
@staticmethod
def static_method():
return "This is a static method"
В приведенном примере мы создаем класс MyClass с методами class_method и static_method. Метод class_method является методом класса, который возвращает сам класс, а метод static_method является статическим методом, который возвращает строку. Оба метода могут быть вызваны как для класса, так и для экземпляра этого класса без необходимости создавать объект метода.
Другие уроки курса "Python"
- Именованные аргументы в Python
- Сравнение def и lambda функций в Python
- Преобразование типов данных в set comprehension
- Игра «Виселица» на Python
- Python groupby() из itertools: работа с повторяющимися элементами
- Принцип одной функции
- Управление пакетами с pip
- Основные функции и модули Python
- Работа со временем в Python
- Установка виртуального окружения Python
- Форматирование строк с f-строками
- Метод difference_update() — разность множеств
- Работа с процессами в Python
- Проверка запуска скрипта или импорта модуля
- Метод get() для словарей
- Проверка версии Python
- Метод ifloordiv для пользовательских классов
- ChainMap.new_child() — добавление нового словаря
- Объединение строк с помощью метода join
- Игра «Угадывание чисел»
- Работа со словарями Python
- Форматирование чисел в Python
- Многоточие в Python
- Создание объекта времени
- Применение команды break
- Хранение данных с помощью dataclasses
- Библиотека Rich: форматирование текста
- Codecademy в Telegram
- inspect в Python: анализ кода
- Concrete Paths в Python
- Работа с аргументами командной строки
- Работа с deque в Python
- Функции в одну строку
- Лямбда-функции в Python
- Сглаживание списка
- Преобразование чисел в слова
- Функция pow() — возвести число в степень
- Срезы в Python
- Округление в Python
- Оператор «not» в Python
- Цепные операции в Python
- Безопасные SQL-запросы в Python 3.11
- Генерация UUID в Python
- Сериализация и десериализация объектов
- Работа с очередями в Python
- Установка random seed в Python
- Работа с переменными в Python















