Я пытаюсь реализовать функциональность среза для класса, который я создаю, который создает векторное представление.
У меня есть этот код до сих пор, который, как я считаю, будет правильно реализовывать срез, но всякий раз, когда я делаю вызов типа v[4], где v - это векторный питон, возвращается ошибка об отсутствии достаточных параметров. Поэтому я пытаюсь выяснить, как определить специальный метод getitem в моем классе для обработки как простых индексов, так и нарезки.
def __getitem__(self, start, stop, step):
    index = start
    if stop == None:
        end = start + 1
    else:
        end = stop
    if step == None:
        stride = 1
    else:
        stride = step
    return self.__data[index:end:stride]
