@staticmethod и @classmethod в Python, и чем они отличаются?Декораторы
@staticmethod и @classmethod используются для создания методов, которые не требуют экземпляра класса. @staticmethod — это метод, который не зависит от экземпляра или самого класса, а @classmethod получает доступ к самому классу через первый параметр cls.➡️ Пример:
class MyClass:
@staticmethod
def static_method():
return "Это статический метод"
@classmethod
def class_method(cls):
return f"Это метод класса {cls.__name__}"
# Использование
print(MyClass.static_method()) # Это статический метод
print(MyClass.class_method()) # Это метод класса MyClass
🗣️ В этом примере static_method ничего не знает о классе, в то время как class_method может взаимодействовать с классом, к которому он принадлежит. Используйте их в зависимости от того, нужно ли вам взаимодействие с классом.
🖥 Подробнее тут