【发布时间】:2018-09-20 04:25:55
【问题描述】:
在 Cython 中,我们可以在参数中添加类型声明。
cdef int add(int a, int b):
return a + b
但是,the official document 没有解释如何声明类对象。我想做这样的事情:
cdef MY_CLASS edit_class(MY_CLASS myclassobj):
myclassobj.edit()
return myclassobj
更具体地说,我想创建一个将(纯 Python)类作为参数并返回它的函数。我知道它可以在不指定类型的情况下工作,但我想知道我是否可以像为 int a 所做的一样(在参数中指定类型)
有什么办法吗?还是如this question 所说,Cython 不支持类?
【问题讨论】:
-
您的 MY_CLASS 应该是纯 Python 类还是
cdef class? -
@ead 这是一个 Python 类。
-
纯 Python 类不是静态类型,因此 Cython 不能对其进行静态类型。在这种情况下,您可以做的最好的事情是
object。
标签: cython