Расширение класса среза - PullRequest
1 голос
/ 12 февраля 2020

Я пытаюсь создать класс, который ведет себя точно как срез, но реализует метод __add__ для объединения нескольких срезов в один срез.

Простой макет может быть:

class cumslice(slice):
    def __add__(self, other):

        s1  = self.start
        e1  = self.end
        st1 = self.step

        s2  = other.start
        e2  = other.end
        st2 = other.step

        s = s1 + st1*s2
        st = st1*st2
        e = min([e1, s1 + st1*e2])

        return cumslice(s, e, st)

(обратите внимание, что нам нужно немного if для обработки None значений.)

Однако приведенный выше код возвращает

TypeError: type 'slice' is not an acceptable base type

Можно ли сделать что-то подобное без переопределения типа фрагмента с нуля?

...