我試圖改善這個代碼,它使用的列表類型:用Cython /蟒蛇 - CDEF類的列表
AttributeError: 'OrderC.OrderC' object has no attribute 'setData'
我想這是:
# CLASS ORDERC#
################
cdef class OrderC:
cdef int _side
cdef float _px
cdef int _vo
def __cinit__(self, int side, float px, int vo):
# ....
cdef setData(self, double[:] dates):
# ....
# CLASS LISTORDERC#
####################
cdef class ListOrderC:
cdef int _B
cdef list _LO_Bid
cdef double[:] _dates
def __init__(self, num.ndarray[num.double_t, ndim=1] dates):
self._B = 0
self._LO_Bid = []
self._dates = dates
cpdef addOrder(self, OrderC oo):
self._B += 1
self._LO_Bid.append(oo)
self._LO_Bid[-1].setData(self._dates)
的問題,當我從蟒蛇叫addOrder到達因爲OrderC被識別爲python對象,所以我必須用cpdef定義setData。但是我希望OrderC被認爲是cdef類來提升性能。
你能幫我嗎?
感謝
在您發佈的代碼中,這些方法沒有正確縮進。你只需要定義一個獨立於'OrderC'的自由函數'setData()'。你需要像正常的Python類一樣格式化類。 – sth 2014-09-10 12:53:21
是的,這只是一個錯誤的帖子。在我的代碼中,縮進是正確的。我對這篇文章進行了更正。 – MiKL 2014-09-10 13:05:17