В чем разница между обычным методом и методом класса
Python
Junior
Без компании
В чем разница между обычным методом и методом класса
Ответы
Обычный метод (instance method) работает с конкретным экземпляром класса и принимает `self` в качестве первого аргумента. Метод класса (`@classmethod`) работает с самим классом и принимает `cls` вместо `self`.
Пример:
```
class MyClass:
def instance_method(self):
print(f"Called instance_method of {self}")
@classmethod
def class_method(cls):
print(f"Called class_method of {cls}")
obj = MyClass()
obj.instance_method() # Работает с экземпляром
MyClass.class_method() # Работает с классом
```
Ключевые отличия:
- Обычные методы требуют создания экземпляра, классметоды можно вызывать напрямую от класса
- Классметоды часто используют для альтернативных конструкторов (фабричные методы)
- Классметоды имеют доступ к атрибутам класса, но не к атрибутам экземпляра