Курс 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
- Python Поверхностное Копирование
- Сортировка и разворот списка
- Работа с пакетами
- Работа с байтовыми строками в Python
- Определение размера папок в Python
- Функция divmod() в Python
- Измерение времени выполнения кода
- Создание именованных кортежей в Python
- Передача аргументов через **arguments
- Создание файла с проверкой ошибки
- Принципы SRP и OCP
- Создание уникального проекта
- Транспонирование 2D-массива с помощью zip
- Декоратор Ajax required
- Разделение списка на гнппы
- Основные операции с библиотекой Numpy
- Настройка вывода NumPy
- Метод join() для объединения элементов
- Оптимизация параметров в Python
- Создание вложенных циклов for
- Порядок и длина множеств в Python
- Работа с временем в Python
- Подсказки типов в Python
- Импорт модулей и пакетов в Python
- Форматирование чисел в Python
- Управление контекстом выполнения
- Структура данных словарь в Python
- Создание новых списков в Python
- Функции all и any в Python
- Работа с датами в Python
- Работа с кортежами в Python
- Значения по умолчанию в Python
- Подсчет элементов в списке с Counter
- GitHub в Telegram: подписка на уведомления
- Декоратор защиты анонимных пользователей
- Операции с датами в Python
- Выражения-генераторы в Python
- Импорт классов из другого файла
- Обратное распространение ошибки
- Кортежи в Python: особенности и преимущества
- Функции в одну строку
- Удаление элемента из списка в Python
- Управление IP-адресами через прокси
- Транспонирование 2D-массива с помощью zip
- Операторы присваивания в Python
- Работа с NumPy.linalg
- Принципы Zen of Python
- PUT запрос для обновления данных















