我需要通过Cython加速Python代码。为了进一步提高速度,我想要自动声明Python变量的C类型。
为此,我想要找到这样的赋值语句:a = 1.0
,试图创建整数或浮点数Python对象,然后将代码更改为cdef double a = 1.0
。(我们知道“a”只用作float。因此,Python代码有一些限制。)
找到赋值语句的第一个任务是使用Python ast模块轻松完成的。但是我不知道如何插入类型定义。我可以修改抽象语法树(ast),但我认为Cython编译器无法读取更改后的ast。
我的问题是:我需要一个代码生成器,允许从更改后的ast转换为Cython代码,还是有更自然的方法来完成我的任务(也许借助Cython工具的帮助)?