Курс 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"
- Работа с изображениями PIL
- Проверка элемента в множестве.
- Объединение словарей в Python
- Defaultdict в Python
- Порядок операций в Python
- Асинхронный код в Python
- Логирование с Logzero
- Оператор «is not» в Python
- Создание виртуальной среды
- Получение локальных переменных в Python
- globals и locals
- Создание и использование ChainMap
- Установка и использование emoji
- Создание генераторов
- Переопределение метода __rshift__
- Сортировка с помощью key
- Работа с аргументами командной строки в Python
- Управление виртуальными средами в Python
- Комментарии в Python.
- Установка библиотек в Python
- Взаимодействие с внешними процессами в Python
- Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
- Методы split() и join() — Python строк.
- Извлечение данных из JSON
- Работа с deque в Python
- Замена текста в Python
- Beautiful Soup — извлечение данных из HTML
- Модуль itertools: комбинации и перестановки
- Итерации в Python
- Строковое представление объектов
- Метод rename() для переименования файлов и каталогов
- Профилирование кода на Python
- Отладка регулярных выражений в Python
- Метод join() для объединения элементов строки
- Анализ текста на русском языке с помощью Pymystem3
- Генерация строк с .join()
- Оформление кода на Python
- Игра «Камень, ножницы, бумага» — Python
- Импорт модулей и пакетов в Python
- Проверка вхождения подстроки
- Удаление элементов по срезу
- Оптимизация поиска в словарях
- Ускорение выполнения кода в Python
- Утечки переменных цикла в Python 3.x
- Сравнение def и lambda функций в Python
- Асинхронное программирование с asyncio















