Я хочу преобразовать метод __getitem__
из python, чтобы принимать массивы из Cython. Я должен разрешить нарезку во втором индексе в этом конкретном приложении. Для python я мог бы написать:
class name:
def __init__(self):
self.numbers = np.random.rand(2,3)
# ...
# ...
def __getitem__(self, tup):
if type(tup) == tuple:
x, y = tup
return self.numbers[x][y]
return self.numbers[tup]
, и все будет отлично работать. Однако интерпретатору не нравится, когда я объявляю переменную numbers
типа cdef public double[:,:] numbers
и пытаюсь вызвать __getitem__
-метод с y
как slice
-объект. Всякий раз, когда это происходит, он жалуется TypeError: объект 'slice' не может быть интерпретирован как целое число . Мой вопрос тогда: как бы я изменил строку return self.bounds[x][y]
так, чтобы y
был правильно понят, если это slice
вместо целого числа?