Cython:在cppclass对象中重载运算符的语法

时间:2017-12-16 16:27:40

标签: cython

我正在尝试创建一个结构或其他类似c的对象,可以使用" +"," - ","< "等

我尝试使用语法是这样的:

cdef cppclass pair:
double x
double y
pair operator+(pair& other):   
    p = new pair()
    p[0].x = this.x+other.x
    p[0].y = this.y+other.y
    return p[0]
cdef pair a
cdef pair b
a.x=1
a.y=2
b.x=3
b.y=4
cdef pair c
c = a + b

但是我收到了这个错误:

Error compiling Cython file:
------------------------------------------------------------
...

cdef cppclass pair:
    double x
    double y
    pair operator+(pair& other):   
\.ipython\cython\_cython_magic_936ab3f7a1a67a849b882d3c497987c2.pyx:5:17: Syntax error in C variable declaration

理解如何使用构造函数也是很好的,我从the docs注意到这里有功能,但没有一个工作示例我不确定如何使用它

cdef cppclass pair:
    double x
    double y
    pair(double x,double y)
cdef pair* a
a = new pair(1,2)

但是我收到编译错误

\.ipython\cython\_cython_magic_054babde51af1aba9962dd2c57e823b2.cpp(1003) : error C2661: '__pyx_t_46_cython_magic_054babde51af1aba9962dd2c57e823b2_pair::__pyx_t_46_cython_magic_054babde51af1aba9962dd2c57e823b2_pair' : no overloaded function takes 2 arguments

0 个答案:

没有答案