Как реализовать срез в Python 3?

Я читал кое-что о срезе в Python 3. Затем я написал программу, попытался реализовать __ getitem__ (self, slice (s)) . Код находится ниже:

class NewList:
    def __init__(self, lst):
        print('new list')
        self._list = lst
    def __getitem__(self, x):
        if type(x) is slice:
            return [ self._list[n] for n in range(x.start, x.stop, x.step) ]  #error?
        else:
            return self._list[x]
    ...

nl1 = NewList([1,2,3,4,5])
nl1[1:3]  #error occurs

Затем я обнаружил, что x.step is None , что привело к возникновению исключения в диапазоне. Итак, как мне реализовать метод __ getitem __ ?

5
задан Georgy 21 May 2019 в 14:34
поделиться