Я пытаюсь создать класс, который ведет себя точно как срез, но реализует метод __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
Можно ли сделать что-то подобное без переопределения типа фрагмента с нуля?