Sobes.tech
Junior — Middle
88

Quelle est la fonction du décorateur @classmethod en Python et en quoi se distingue-t-il des méthodes de classe ordinaires?

Entreprises à qui on a demandé
ArendadataArendadata

Réponse de l'IA

sobes.tech IA

Декоратор @classmethod в Python используется для определения метода, который получает первым аргументом не экземпляр класса (self), а сам класс (cls). Такой метод может обращаться к атрибутам и другим методам класса, а не конкретного объекта.

Отличия от обычных методов:

  • Обычные методы принимают первым параметром self — ссылку на конкретный экземпляр класса.
  • Методы с @classmethod принимают первым параметром cls — сам класс.

Это полезно, когда нужно создать альтернативные конструкторы или методы, которые работают с классом в целом, а не с отдельным объектом.

Пример:

class MyClass:
    count = 0

    def __init__(self):
        MyClass.count += 1

    @classmethod
    def get_instance_count(cls):
        return cls.count

obj1 = MyClass()
obj2 = MyClass()
print(MyClass.get_instance_count())  # Выведет: 2

Здесь get_instance_count — метод класса, который обращается к атрибуту класса count.