gpt4 book ai didi

python - 为 python 模块创建 .pxd 文件

转载 作者:太空宇宙 更新时间:2023-11-04 08:48:43 28 4
gpt4 key购买 nike

一种使用 cython 的方法,cython 是 Python 到 C 的编译器,不是在 Cython 中重写 Python 代码,而是编写一个与您声明变量类型的模块同名的 .pxd 文件,如 here 中所述。

有谁知道自动化或半自动化此过程的方法吗?

最佳答案

您具体要自动化什么? Cython 可以采用 python 模块并将其编译成 C,但这只能实现适度的速度提升。大部分速度提升来自于提供类型声明。这真的不是你可以自动化的事情。您必须为他们提供一种或另一种方式以获得最佳速度提升。

您可以将类型声明放在 .py 文件本身中。在 Python 解释器中运行时,类型声明无效。但是在编译时,cython 可以使用它们进行某些优化。例如。

some_module.py

def myfunction(x, y=2):
a = x-y
return a + x * y

some_module.pxd

cpdef int myfunction(int x, int y=*)

可以改写为:

(a) 使用装饰器

@cython.locals(x=cython.int, y=cython.int, a=cython.int)
@cython.returns(cython.int)
def myfunction(x, y=2):
a = x-y
return a + x * y

或者,(b) 使用注解

# cython: annotation_typing=True

def myfunction(x: {'ctype': 'int'}, y: {'ctype': 'int'}=2) -> {'ctype': 'int'}:
a = x-y
return a + x * y

关于python - 为 python 模块创建 .pxd 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37503462/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com