7

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

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

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

4

1 回答 1

7

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

于 2019-03-24T17:42:15.740 回答