cython 是否支持数据类或类似的东西

Lef*_*fty 7 python cython namedtuple python-3.7 python-dataclasses

我对在 Python 和 Cython 代码之间传递数据很感兴趣,以便可以从 C 访问数据而无需 GIL。我正在考虑使用数据类(自 py3.7 起)、命名元组(自 py3.6 起具有很好的定义语法)或 Cython 的扩展类型(cdef classess)来实现这一点。

不幸的是,数据类和命名元组似乎像来自 Cython 的通用对象一样被处理,而没有任何编译成 C 的支持。

可以使用 Cython 扩展类型(cdef 类),但与数据类相比,它们有许多缺点,最重要的是,您必须__init__使用样板代码来实现以设置所有类属性,对吗?

Lef*_*fty 6

我询问了 Cython 开发人员,他们打开了一个用于实现@dataclass扩展类型(cdef 类)的功能请求:https : //github.com/cython/cython/issues/2903。所以希望他们很快就会在 Cython 中得到支持。