我有兴趣在 Python 和 Cython 代码之间传递数据,以便可以从 C 访问数据而无需 GIL。我正在考虑使用数据类(自 py3.7 起)、命名元组(自 py3.6 起具有很好的定义语法)或 Cython 的扩展类型(cdef classess)来实现这一点。
不幸的是,数据类和命名元组似乎像 Cython 中的通用对象一样处理,而不支持编译成 C。
可以使用 Cython 扩展类型(cdef 类),但与数据类相比,它们有很多缺点,最重要的是,您必须__init__
使用样板代码来设置所有类属性,对吧?