Курс 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"
- Замер времени выполнения кода
- Нахождение максимального значения и его индекса в списке
- Встраивание HTML в Jupyter Notebook
- Работа с множествами в Python
- Проектирование Singleton с метаклассом
- Работа с NumPy
- Сортировка и разворот списка
- Экспорт данных в файл.
- Переменная с нижним подчеркиванием
- Генерация чисел с range()
- Расширение операции побитового «и» в Python
- Настройка шрифта и цвета в Tkinter
- Генератор списка в Python
- Обновление и получение данных в SQLite
- Секреты Python
- Работа с коллекциями Python
- Преобразование символов в нижний регистр
- Декораторы в Python
- Оценка точности модели
- Тестирование времени с Freezegun
- Метод get() для словарей
- Создание уникального множества
- Генераторы списков
- Установка и обучение ChatterBot
- Удаление дубликатов из списка
- Преобразование range в итератор
- Курсы Яндекс Практикум
- Подсчет элементов в Python
- Лямбда-функции для min/max
- Счетчик в Python: most_common()
- Декораторы в Python
- Работа с парами ключ-значение
- Методы и функции в Python
- Управление экспортом элементов
- Retrying в Python: повторные вызовы
- Атрибуты класса и экземпляра
- Создание обратного итератора
- Python enumerate() функции
- Удаление элементов по срезу
- Преобразование Word в PDF с Spire.Doc
- Создание и использование ChainMap
- Работа с геоданными с помощью geopy
- Удаление знаков препинания в Python
- Конвертация текстовых чисел с помощью Numerizer
- Генератор чисел Фибоначчи
- Проверка ввода с помощью isdigit
- Многострочные комментарии в Python















