gpt4 book ai didi

python - 使用 cython .pxd 文件来增强纯 python 文件

转载 作者:太空狗 更新时间:2023-10-29 22:11:58 26 4
gpt4 key购买 nike

按照此处的示例“Augementing .pxd”,我正在尝试使用“.pxd”文件来扩充纯 Python 文件。 (在纯 python 文件外部添加类型定义)。

python 文件:

class A(object):
def foo(self, i=3, x=None):
print "Big" if i > 1000 else "Small"

pxd文件:

cdef class A:
cpdef foo(self, int i, x)

我有一本字典,我在 python 中默认为“无”。不幸的是,cython 不喜欢这样。

如果我使用我的“纯”python 文件,没有声明类型或在 pxd 文件中将类型声明为“dict”,我得到错误:

"Signature not compatible with previous declaration"

我注意到如果我不指定默认值它会编译,但声明默认值是有原因的。

有什么办法可以解决这个问题吗?

最佳答案

cpdef 函数中可选参数的声明方式与 cdef 函数不同,本质上与 python 函数相同。

您的 .pxd 文件应修改为

cdef class A:
cpdef foo(self, int i=*, x=*)

关于python - 使用 cython .pxd 文件来增强纯 python 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3852742/

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