我需要通过 cython 加速 python 代码。为了进一步加快速度,我想在 python 变量上自动声明 C 类型。
要做到这一点,我想找到像 a = 1.0 这样的任务,它试图创建整数或 float python 对象,而不是将代码更改为 cdef double a = 1.0。 (我们知道“a”只能用作 float ,因此python代码有一些限制。)
使用 python ast 模块查找分配的第一个任务是一项简单的任务。但我不知道如何插入类型定义。我可以修改抽象语法树 (ast),但我假设 cython 编译器无法读取更改后的 ast。
这是我的问题:我是否需要一个代码生成器来允许从更改后的 ast 转换为 cython 代码,或者是否有更自然的方法来完成我的任务(可能借助 cython 工具)?
请您参考如下方法:
我认为Augmenting.pxd是要走的路。
