3
我有一个简单的用Cython类,我定义这意味着什么比较平等两个对象(==
):如何制作Cython对象的副本?
cdef class MyClass:
cdef public int a
cdef public int b
def __init__(self, a, b):
self.a = a
self.b = b
def __richcmp__(self, MyClass other, int op):
if op == 2:
if (self.a == other.a) and (self.b == other.b):
return True
return False
raise Exception, "No other op"
如果我做了一个Python的MyClass实例,然后复制它,它打破了对象:
import copy
myobj = MyClass(5, 10)
myobj_copy = copy.copy(myobj)
# myobj_copy is now defective
# ..
什么是创建Cython类实例副本的正确方法?我想制作一个副本,然后在不影响原始对象的情况下对其进行修改。 更新要清楚,MyClass也继承了另一个Cython(cdef
)类。
你的意思是''将复制导入为cp''? – user248237dfsf
@ user248237dfsf:非!我在“cp.pyx”这个名字下编写了你的代码,编译成了'cp.so',因此我使用'import cp'导入它。 – hivert