1
我需要在另一個實例中修改C
實例的非公開屬性。Cython,受保護的屬性
cdef class C:
cdef C superC
cdef MakeToSuper(self, C other):
other.superC = C
protected
可能會做的伎倆在C,但我怎麼能實現這一目標的Cython
?
我需要在另一個實例中修改C
實例的非公開屬性。Cython,受保護的屬性
cdef class C:
cdef C superC
cdef MakeToSuper(self, C other):
other.superC = C
protected
可能會做的伎倆在C,但我怎麼能實現這一目標的Cython
?
你試過了嗎?對於「不要碰它」的消息(好吧,只有python程序員會理解它,但它比沒有更好)。
還有
__
雙下劃線就像在Python的「私人」(但依然可以使用,如果適當的Python機制來訪問)。
尋找__(雙下劃線),並在你的類的其他實例中使用一些python魔術來訪問它。它仍然可以從任何其他Python代碼中獲得相同的魔法,但是每個知道如何繞過它的人都知道這是出於某種原因。
這就是我在Python中使用它的通常方式,我認爲在cython中可能有另一種方法。 :) 謝謝 –
這個問題需要澄清。你想達到什麼目的? – fabrizioM
@fabrizioM C類有2個實例,* A *和* B *。他們的類定義了一個對任何用戶都不可見的屬性,但C的實例應該能夠看到並修改該屬性。我認爲這段代碼會做到這一點。 ^^ –
我也不明白。在Cython上下文中,類內的cdef屬性是公共的。他們不能在Python中訪問。所以你的代碼片段正常工作?你還想要什麼? – tito