在出现
__mro__
的情况下,Cython 是否尊重 __dealloc__
?
例如,在继承的情况下:
cdef class A:
def __dealloc__(self):
# Deallocate
cdef class B(A):
def __dealloc__(self):
# Deallocate some more
是否保证在
B.__dealloc__
之前调用A.__dealloc__
?
我希望创建一个线程安全的子类,它在释放期间获取锁,并且只在该锁内调用父类
__dealloc__
。
文档没有明确指定这一点。
但是,它确实说
__dealloc__()
是 __cinit__()
的逆,并且文档说
基类型层次结构中任何现有的
方法都会在您的__cinit__()
方法之前自动调用。__cinit__()
因此,如果这确实是相反的,我希望它们会以相反的顺序被调用。