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

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

В общем хочу разобраться как работает джанга когда вызывает 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)
  • Вопрос задан
  • 530 просмотров
Подписаться 4 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 3
@Nerevar_soul
Я когда разбирался с CBV пользовался вот этим сайтом. Там очень наглядно все связи и код прослеживаются.
Ответ написан
un1t
@un1t
А исходники то посмотреть не судьба?
https://github.com/django/django/tree/master/djang...
Во вьюъах все просто как два пальца.
Ответ написан
@abcd0x00
Выведи self.__class__ .
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы