Задать вопрос

Как посмотреть класс которому принадлежит метод?

В общем хочу разобраться как работает джанга когда вызывает CBV, к каким классам обращается, что запрашивает и хочу вывести список "класс -> метод/атрибут"
пробую делать так
def __getattribute__(self, *args, **kwargs):
        (string,) = args
        if ('__class__' != string):
            print(self.__class__.__name__, ' ', *args)
        return super().__getattribute__(*args, **kwargs)

Он выводит только имя родителя, как можно посмотреть какому классу какой метод принадлежит?
UPD2: Кому интересно вот решение
def __getattribute__(self, *args, **kwargs):
        (string,) = args
        if '__class__' != string:
            from inspect import isfunction
            if hasattr(self.__class__, string):
                if isfunction(getattr(self.__class__, string)):
                    print(getattr(self.__class__, string).__qualname__, ' ', *args, **kwargs)
        return super().__getattribute__(*args, **kwargs)
  • Вопрос задан
  • 531 просмотр
Подписаться 4 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 3
@Nerevar_soul
Я когда разбирался с CBV пользовался вот этим сайтом. Там очень наглядно все связи и код прослеживаются.
Ответ написан
un1t
@un1t
А исходники то посмотреть не судьба?
https://github.com/django/django/tree/master/djang...
Во вьюъах все просто как два пальца.
Ответ написан
@abcd0x00
Выведи self.__class__ .
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SpectrumData Екатеринбург
от 200 000 до 300 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
22 янв. 2025, в 04:08
6000 руб./за проект
21 янв. 2025, в 23:55
20000 руб./за проект
21 янв. 2025, в 23:35
80000 руб./за проект