подкласс абстрактного базового класса Sequence

Этот список показывает, какие методы вам нужно реализовать, чтобы ваш класс был «расценен» как последовательность:__getitem__, __len__, __contains__, __iter__, __reversed__, index, а такжеcount, Так почему же эта минимальная реализация не работает, то есть почемуissubclass(S, Sequence) is False?

from collections import *


class S(object):
    def __getitem__(self, item):
        raise IndexError

    def __len__(self):
        return 0

    def __contains__(self, item):
        return False

    def __iter__(self):
        return iter(())

    def __reversed__(self):
        return self

    def index(self, item):
        raise IndexError

    def count(self, item):
        return 0


issubclass(S, Iterable)   # True  :-)
issubclass(S, Sized)      # True  :-)
issubclass(S, Container)  # True  :-)
issubclass(S, Sequence)   # False :-(

Есть ли дополнительный метод, который мне нужен для реализации, который я упустил? Я неправильно понял абстрактные базовые классы? НаследованиеSequence маркиissubclass вернутьTrue конечно, но это своего рода побеждает идею abc, не так ли?

Ответы на вопрос(1)

Ваш ответ на вопрос