几个月前,我发生了类似的事情,事实证明__repr__()
,对于堆栈中的变量,我在内执行了非常慢的操作。当PyCharm达到断点时,它将获取当前作用域中的所有变量并对其进行调用__repr__
。这是演示此问题的一种娱乐方式:
import time
class Foo(object):
def __repr__(self):
time.sleep(100)
return "look at me"
if __name__ == '__main__':
a = Foo()
print "set your breakpoint here"
PyCharm也将呼叫__getattribute__('__class__')
。如果您__getattribute__
的行为异常,也可能使您绊倒。
这可能不是您正在发生的事情,但也许值得考虑。