0
我是一名初學者,我相信這個問題太簡單了。我試圖在cython中測試內存視圖以更好地瞭解它們。在我的代碼中,我將每個內存視圖元素(如[1,2]
)作爲cy
類元素move
傳遞。如何訪問在cython中聲明的類的類型化內存視圖元素?
cdef class cy:
cdef public long[:] move
def __init__(self, move):
self.move = move
lst = []
for i in range(100):
lst.append([i, i+1])
cdef long[:, :] memview = np.asarray(lst)
b0 = cy(memview[0])
print(b0.move)
當我打印結果。我得到這個:
<MemoryView of 'ndarray' object> # I expect for sth like [12, 13]
我需要cy
類打印出一個列表。我該如何解決它? 有,當我使用此代碼,發生在我的另一個問題:
cdef class parent:
cdef public:
list children
list moves
def __init__(self):
self.children = []
def add_children(self, moves):
cdef int i = 0
cdef int N = len(moves)
for i in range(N):
self.children.append(cy(moves[i]))
cdef int[:, :] moves = np.asarray(lst, dtype=np.int32)
obj = parent()
for move in moves:
obj.add_children(move)
運行此代碼後,我總是得到這個錯誤:
TypeError: a bytes-like object is required, not 'int'
。 是什麼導致了這個錯誤,我該如何解決這個問題?
謝謝。我修正了錯誤。 –