Back to questions
Ростелеком
Junior — Middle
74
Объясните различия между self и cls в контексте методов класса
Companies where asked
Answer from AI
sobes.tech AI
В Python self и cls — это соглашения для первого параметра методов, но они имеют разное назначение:
self— это ссылка на конкретный экземпляр класса. Используется в обычных методах экземпляра для доступа к атрибутам и методам этого объекта.cls— это ссылка на сам класс, а не на его экземпляр. Используется в методах класса (обозначаются декоратором@classmethod), чтобы работать с классом в целом, например, создавать новые экземпляры или изменять свойства класса.
Пример:
class MyClass:
class_var = 0
def __init__(self, value):
self.instance_var = value
def instance_method(self):
print(f'Instance var: {self.instance_var}')
@classmethod
def class_method(cls):
print(f'Class var: {cls.class_var}')
obj = MyClass(10)
obj.instance_method() # обращается к экземпляру
MyClass.class_method() # обращается к классу