Курс 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"
- Перемешивание списка с shuffle()
- Хранение переменных в Python.
- Именованные срезы в Python
- Кортеж в Python: создание, доступ, изменение
- Запуск файлового сервера
- Анонимные функции в Python
- Экспорт внешнего файла с помощью writefile
- Замена символов в строке
- Изменение логики работы с временем
- Копирование файлов с shutil()
- Декораторы с аргументами в Python
- Отступы в Python
- Преобразование PowerPoint в PDF.
- Итерация по итерируемым объектам
- split() — разделение строки
- Функции высшего порядка в Python
- Блок try…finally в Python
- Строки в Python: апострофы и кавычки
- Назначение максимального и минимального значения переменной в Python.
- Создание списков в Python
- Замеры производительности в Python
- Создание виртуальной среды
- Лямбда-функции в цикле
- Модуль itertools: эффективная работа с итераторами
- Декораторы с аргументами
- Вычисление фазы комплексного числа
- Переопределение метода __eq__
- Оператор обр. импликации
- Отладка кода
- Установка максимального количества цифр
- Beautiful Soup — извлечение данных из HTML
- F-строки в Python
- Изменение переменной в Python: nonlocal
- Операторы += в Python
- Установка и использование Logzero
- Создание Radio кнопок в tkinter
- Функция count() в Python
- Лямбда-функции для min/max
- Логирование с Logzero
- Оптимизация методов в Python 3.7
- Декораторы в Python
- Сортировка в Python
- Освобождение памяти в Python
- Поиск частого элемента
- Дизассемблирование Python кода















