В Python существует два специальных типа методов, которые отличаются от обычных методов экземпляра. Они называются методами класса и статическими методами. Давайте разберемся в их особенностях и применении.
Методы класса
Методы класса предназначены для работы с самим классом, а не с экземплярами класса. Они определяются с использованием декоратора @classmethod
и принимают ссылку на класс (обычно называемую cls
) в качестве первого аргумента.
class MyClass:
@classmethod
def my_class_method(cls, arg1, arg2):
pass
Методы класса обычно используются для создания альтернативных конструкторов или для работы с атрибутами класса.
Статические методы
Статические методы не привязаны ни к классу, ни к экземплярам класса, и их поведение не может быть изменено наследованием. Они определяются с использованием декоратора @staticmethod
и не принимают ссылку на класс или экземпляр класса в качестве первого аргумента.
class MyClass:
@staticmethod
def my_static_method(arg1, arg2):
pass
Статические методы обычно используются для создания функций, которые связаны с классом и его экземплярами, но не зависят от их состояния. Они могут быть использованы для определения вспомогательных функций, которые не требуют доступа к атрибутам класса или экземпляра.