我是C ++ / C#开发人员团队中唯一的Matlab用户。我正在过渡到Python,并希望Cython可以帮助我弥合我的工作和同事的工作之间的差距。
我原本以为Cython可以用来将Python代码编译成C源文件,然后可以从Python导入/调用。我希望从中获得两个好处:
不幸的是,看起来后者不是一种选择,但我并不积极。看起来C源文件非常臃肿,有很多对Python的引用。我有一个三行Python脚本声明一个cdef char *,指定字符串“hello world!”到该变量,然后打印它。生成的C文件长度为2000行。
所以,我的问题是,Cython无法获得#2的好处?使用Cython 生成的C代码是否仅供Python 使用,或者有没有办法删除Python膨胀并获得Python代码的简洁C转换?
答案 0 :(得分:6)
Cython将C视为一种中间语言,与LLVM将LLVM IR视为中间语言的方式大致相同。 Cython的目的是生成 Python扩展模块,而C只是达到这个目的最合理的方法。它通常会产生一个曲折的小预处理器指令迷宫,完全不可读。如果你想要可以阅读的C代码,你不应该使用Cython。