该案例类似于this,即我在stdout上收到警告输出:
Exception RuntimeError: 'maximum recursion depth exceeded while calling a
Python object' in 'sage.structure.parent.good_as_coerce_domain' ignored
函数good_as_coerce_domain()
是cdef
编辑的Cython函数,项目没有__del__
成员函数。该功能仅包含
cdef inline bint good_as_coerce_domain(S):
return isinstance(S,CategoryObject) or isinstance(S,type)
并且在启动期间被称为数十次,甚至数百次。插入print
语句会为我提供S
对象,但这不是__del__
的对象。相反,它似乎发生在isinstance
调用期间。
更改堆栈深度无法解决问题。由于责任__del__
可能在Python本身,我需要
__del__
导致消息的对象类型的方法,或但前者更可取。