Python 如何找到忽略异常的_del__成员?

Python 如何找到忽略异常的_del__成员?,python,python-2.7,debugging,Python,Python 2.7,Debugging,该情况类似于,即,我在标准输出上得到一个警告输出: Exception RuntimeError: 'maximum recursion depth exceeded while calling a Python object' in 'sage.structure.parent.good_as_coerce_domain' ignored 函数good\u as\u compresse\u domain()是一个cdefed Cython函数,项目没有\u del\u成员函数。该函数只包括

该情况类似于,即,我在标准输出上得到一个警告输出:

Exception RuntimeError: 'maximum recursion depth exceeded while calling a
Python object' in 'sage.structure.parent.good_as_coerce_domain' ignored
函数
good\u as\u compresse\u domain()
是一个
cdef
ed Cython函数,项目没有
\u del\u
成员函数。该函数只包括

cdef inline bint good_as_coerce_domain(S):
    return isinstance(S,CategoryObject) or isinstance(S,type)
在启动过程中,即使不是几百次,也会被称为几十次。插入一个
print
语句将为我提供
S
对象,但这不是带有
的对象。相反,它看起来像是在
isinstance
调用期间发生的

更改堆栈深度不是解决方案。由于负责的
\uuu del\uuu
可能是Python本身,因此我需要

  • 一种了解对象类型的方法,该对象的
    \uuuu del\uuuu
    导致该消息,或
  • 一种关闭消息的方法

但是前者更可取。

我必须说Python处理这一问题的方式确实不令人满意。在stdout上发垃圾邮件是不受欢迎的。他们至少可以选择关闭它。您是否尝试过在返回之前进行调试打印,从而在每次调用重要数据时打印出来?这将允许您查明是哪个对象导致了错误?或者您可以在返回之前在isinstance调用周围添加一个try expect…我错了,尽管big项目没有一个
\uu del\uu
成员函数。因此忽略必须来自所使用的库,可能是python库本身。问题已更新。@holroy我确实可以捕获运行时错误。我没有料到这一点,因为我认为它已经被捕获了。再次更正:我错过了
\uu del\uu
函数,正在调查这些函数。