Чем отличается вызов метода класса от обращения к экземпляру этого класса?
Ответ от нейросети
sobes.tech AI
В Python вызов метода класса и вызов метода экземпляра отличаются тем, к какому объекту они привязаны и какие параметры получают.
-
Метод экземпляра — это обычный метод, который вызывается через объект (экземпляр класса). Первый параметр всегда
self, который ссылается на конкретный экземпляр. Черезselfможно обращаться к атрибутам и другим методам этого объекта. -
Метод класса — это метод, который привязан к самому классу, а не к экземпляру. Он объявляется с декоратором
@classmethodи первым параметром принимаетcls— ссылку на класс. Такие методы могут работать с атрибутами класса и создавать новые экземпляры.
Пример:
class MyClass:
class_var = 0
def instance_method(self):
print(f"Это метод экземпляра, self: {self}")
@classmethod
def class_method(cls):
print(f"Это метод класса, cls: {cls}")
obj = MyClass()
obj.instance_method() # Вызов метода экземпляра
MyClass.class_method() # Вызов метода класса
Таким образом, вызов метода класса не требует создания экземпляра, а метод экземпляра работает с конкретным объектом.