Sobes.tech
Back to questions
Junior — Middle
61

Какую роль выполняет аргумент cls внутри декоратора @classmethod?

Answer from AI

sobes.tech AI

Аргумент cls в методе, декорированном @classmethod, представляет сам класс, а не экземпляр класса. Это позволяет методу работать с классом напрямую — например, создавать новые экземпляры или изменять атрибуты класса. В отличие от обычных методов, где первым аргументом является self (экземпляр), в классовых методах первым аргументом всегда является класс cls.

Пример:

class MyClass:
    count = 0

    @classmethod
    def increment_count(cls):
        cls.count += 1

MyClass.increment_count()
print(MyClass.count)  # Выведет: 1

Здесь cls ссылается на MyClass, и метод изменяет атрибут класса.