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