在cython的python变量上自动声明c类型

时间:2013-11-04 16:26:45

标签: python code-generation cython abstract-syntax-tree

我需要通过cython加速python代码。为了获得额外的加速,我想在python变量上自动声明C类型。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

相关问题