Встречается на собеседованиях • сегодня
В чем разница декораторов @staticmethod и @classmethod с точки зрения принимаемых аргументов
Основное отличие в том, какие аргументы автоматически передаются в метод:
@staticmethodне получает никаких специальных аргументов - это просто функция внутри класса. Работает как обычная функция, но вызывается через класс или экземпляр.
@classmethodпервым аргументом получает сам класс (обычно называемыйcls). Это позволяет обращаться к атрибутам класса и создавать его экземпляры.
Пример:
python
class MyClass:
@staticmethod
def static_method(x):
return x * 2
@classmethod
def class_method(cls, x):
return cls.__name__ + str(x)
# Вызов
MyClass.static_method(5) # 10
MyClass.class_method(5) # 'MyClass5'Ключевые моменты:
staticmethod- чистая функция, не знает о классеclassmethodзнает о классе черезcls- Оба могут вызываться как через класс, так и через экземпляр

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы