Cython 是否保证 __mro__ 中的 __dealloc__ 顺序?

问题描述 投票:0回答:1

在出现

__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__

python memory-management cython
1个回答
0
投票

文档没有明确指定这一点。

但是,它确实说

__dealloc__()
__cinit__()
的逆,并且文档说

基类型层次结构中任何现有的

__cinit__()
方法都会在您的
__cinit__()
方法之前自动调用。

因此,如果这确实是相反的,我希望它们会以相反的顺序被调用。

© www.soinside.com 2019 - 2024. All rights reserved.