Курс 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"
- Функция pow() — возвести число в степень
- Удаление символа из строки
- Оператор space-invader
- Python: изменяемые и неизменяемые коллекции
- Особенности множеств в Python
- Метод setdefault() в Python
- Преобразование строки в число
- Работа с кортежами в Python
- Цикл for с enumerate() в Python
- IPython и Jupyter Notebook: руководство
- Проверка типов с использованием isinstance
- Печать месячного календаря
- Отладка регулярных выражений в Python
- Поиск шаблона в строке
- Функция count() в Python
- Проблема с изменяемыми аргументами
- Оператор in для Python
- Monkey Patching в Python
- Метод __irshift__ для побитового сдвига вправо
- Транспонирование 2D-массива с помощью zip
- Оператор * в Python
- Переопределение метода __lshift__
- Разделение строк в Python
- Функции в Python
- Работа с необработанными строками
- Форматирование строк в Python
- Разность множеств
- Создание уникального проекта
- Форматирование даты с strftime()
- Переопределение метода __eq__
- Оператор (*) в Python
- Python Ellipsis использование
- Вычисление разности множеств в Python
- Методы classmethod и staticmethod
- Возврат нескольких значений из функции
- Функция zip() — объединение последовательностей
- Модуль subprocess: запуск внешних команд
- Перевод эмодзи и эмотиконов.
- Lambda-функция в Python: использование с map() и sum()
- Метод getitem для доступа к элементам последовательности
- Сортировка в Python
- Тестирование модели в PyTorch
- Метод get для словаря















