Sobes.tech
Back to questions
Junior — Middle
60

Можно ли внутри метода класса вернуть сам класс, которому принадлежит данный метод?

Answer from AI

sobes.tech AI

Да, внутри метода класса в Python можно получить ссылку на сам класс, которому принадлежит этот метод. Для этого обычно используют первый параметр метода:

  • В обычных методах (instance methods) первым параметром является self — ссылка на экземпляр класса. Чтобы получить класс, можно использовать self.__class__.
  • В методах класса (class methods), которые объявляются с декоратором @classmethod, первым параметром является cls — ссылка непосредственно на класс.

Пример:

class MyClass:
    def instance_method(self):
        return self.__class__

    @classmethod
    def class_method(cls):
        return cls

obj = MyClass()
print(obj.instance_method())  # <class '__main__.MyClass'>
print(MyClass.class_method()) # <class '__main__.MyClass'>

Таким образом, внутри метода можно вернуть сам класс через self.__class__ или cls.