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