У меня проблема с отладкой в 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.
Могу ли я что-либо сделать против этого поведения, потому что мне нужно отладить?