Курс 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"
- Создание словаря с значением по умолчанию
- Namedtuple в Python
- Метод getitem для доступа к элементам последовательности
- Создание пользовательской коллекции в Python
- Основы работы со списками
- Создание GUI на Tkinter
- JSON-esque в Python
- Работа с timedelta в Python
- Операторы += в Python
- Сортировка в Python
- Использование type hints
- Работа с датой и временем в Python
- Обмен значений переменных в Python
- Определение объема памяти объекта
- Работа с временем в Python
- Генераторы в Python
- Логирование в Python
- Создание и удаление объектов
- Хэш-функции в Python
- Дизассемблирование Python кода
- Работа с Telegram API на Python
- Создание словарей в Python
- Инициализация структур данных
- Переопределение метода len
- Моржовый оператор в Python 3.8
- Очистка данных в Python
- Закрытие файла в Python
- Flask: создание веб-приложений
- Оператор «not» в Python
- Работа с defaultdictами в Python
- Протокол управления контекстом
- Генераторы списков в Python
- Работа с асинхронными задачами в Python
- Представление бесконечности в Python
- Подсчет вхождений элементов
- Подсчет элементов с помощью Counter из collections
- Проблема сравнения словарей
- Декораторы в Python
- Метод invert для побитового отрицания
- Сортировка данных в Python
- Получение значений из словарей
- Основы работы с базами данных в Python
- Метод ifloordiv для пользовательских классов
- Метод join() для объединения строк
- Поиск подстроки в строке
- Извлечение статей с newspaper3k
- Работа с путями в Python















