4

我需要通过 cython 加速 python 代码。为了进一步加快速度,我想在 python 变量上自动声明 C 类型。

为此,我想找到a = 1.0尝试创建整数或浮点 python 对象的赋值,然后将代码更改为cdef double a = 1.0. (我们知道“a”只用作浮点数。因此python代码有一些限制。)

使用 python ast 模块查找作业的第一项任务是一项简单的任务。但我不知道如何插入类型定义。我可以修改抽象语法树(ast),但我假设 cython 编译器无法读取更改后的 ast。

这是我的问题:我是否需要一个代码生成器来允许从更改后的 ast 代码转换为 cython 代码,或者是否有更自然的方式来完成我的任务(也许在 cython 工具的帮助下)?

4

2 回答 2

1

我认为Augmenting.pxd是要走的路。

于 2013-12-02T08:47:40.127 回答
0

您可以自动推断类型: https ://cython.readthedocs.io/en/latest/src/quickstart/cythonize.html

于 2021-08-17T04:40:36.517 回答