Курс 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
- Список переменных с %who
- Избегайте пустого списка
- Функция eval() в Python
- Декодирование строк в Python
- Метод __iand__ для пользовательских классов
- Сортировка с параметром key
- Progress с библиотекой tqdm
- Использование эмодзи в Python
- Декораторы в Python
- Хеширование паролей с солью
- Переопределение оператора % для объектов
- inspect в Python: анализ кода
- Сериализация объектов в Python
- Сравнение строк в Python
- Поиск наиболее частого элемента в списке
- Поиск всех индексов подстроки
- Объединение списков с использованием itertools.chain
- Удаление ключа из словаря в Python
- Создание пар из последовательностей
- Удаление элемента из списка
- Работа с эмодзи в Python
- Метод get для словарей
- Установка User-Agent в Python
- Метод rlshift для битового сдвига
- Генератор данных в Keras
- Пустой оператор pass в Python
- Разделение строки с регулярными выражениями
- Управление фоновыми задачами в Python
- Определение локальных переменных в Python
- Логирование с Logzero
- Форматирование строк в Python
- Измерение времени выполнения кода
- Проверка существования переменной с оператором :=
- Создание новой даты в Python
- Лямбда-функции в Python
- Атрибуты объекта в Python
- Метод hash в Python
- Виртуальные среды в Python
- Асинхронное программирование с asyncio
- Использование функции enumerate()
- Оператор == в Python
- Цикл for в Python















