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

Does cython support dataclasses or something similar

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

不幸的是,数据classes 和命名元组似乎像 Cython 中的通用对象一样处理,而不支持编译成 C。

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

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