Python: implementando o fatiamento no __getitem__

Estou tentando implementar a funcionalidade de fatia para uma classe que estou criando que cria uma representação vetorial.

Eu tenho esse código até agora, que acredito que implementará corretamente a fatia, mas sempre que eu fizer uma chamada comov[4] onde v é um vetor python retorna um erro por não ter parâmetros suficientes. Então, eu estou tentando descobrir como definir ogetitem método especial na minha classe para lidar com índices simples e fatiar.

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]

questionAnswers(5)

yourAnswerToTheQuestion