отладка pycharm __gettattr__ - PullRequest
       44

отладка pycharm __gettattr__

1 голос
/ 26 января 2020

У меня проблема с отладкой в ​​PyCharm (возможно, эта проблема наблюдается и в других IDE):

Если вы берете следующий код:

class Test1:
    def __init__(self):
        self.arg1 = 'abc'
        self.arg2 = 'def'
        self.some_other_class = SomeOtherClass()
        return

    def __getattr__(self, item):
        print(item)
        if callable(getattr(self.some_other_class, 'blabla')):
            abc = 123
        return

x = Test1()

и моя точка останова находится на self.arg1 = 'abc', происходит следующее:

Только в режиме отладки выполняется поиск переменной экземпляра __len__, которая не найдена -> затем вызывается __getattr__. (Я вижу это из-за print(item) -Statement в __getattr__). Затем self.some_other_class ищется. Это не найдено: рекурсивно погружаться в __getattr__ и так далее до тех пор, пока не произойдет RecursionError.

Могу ли я что-либо сделать против этого поведения, потому что мне нужно отладить?

...