如何在cython中使用cdefined元类?

2024-06-01 00:08:34 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我试图编译的cython文件示例:

在食品吧.pxd

cdef extern from 'object.h': 
    ctypedef class __builtin__.type [object PyHeapTypeObject]:
        pass

cdef class _A(type):
    pass

cdef class A #Forward Declaration

cdef class B(A):
    pass

在食品吧.pyx

^{pr2}$

当我试图编译它们时,我得到一个AnalyseDeclarationsTransform错误。什么是合适的语法,或者有什么变通方法?在


Tags: 文件from食品示例objecttypeexternpass
1条回答
网友
1楼 · 发布于 2024-06-01 00:08:34

据我所知,不能有一个扩展(cdef)类的元类不是type。但是请注意,一个带有cdef元类的普通类是完全正确的。我不确定你想达到什么目标,但以下几点是可以的:

cdef extern from 'object.h': 
    ctypedef class __builtin__.type [object PyHeapTypeObject]:
        pass

cdef class _A(type):
    pass

以及

^{pr2}$

你可以在sage的classcall_metaclass中找到一个真实的例子

相关问题 更多 >