Невозможно создать экземпляр collection.abc.Sequence - PullRequest
0 голосов
/ 08 декабря 2018

При проверке в документации Python таблицы абстрактных базовых классов для контейнеров я не смог создать экземпляр collections.abc.Sequence.Я пропустил метод в классе J или документация неполная?

import collections.abc

class A:
    def __contains__(self): pass

class B:
    def __hash__(self): pass

class C:
    def __iter__(self): pass

class D:
    def __iter__(self): pass
    def __next__(self): pass

class E:
    def __reversed__(self): pass
    def __iter__(self): pass

class F:
    def send(self): pass
    def throw(self): pass
    def close(self): pass
    def __iter__(self): pass
    def __next__(self): pass

class G:
    def __len__(self): pass

class H:
    def __call__(self): pass

class I:
    def __contains__(self): pass
    def __iter__(self): pass
    def __len__(self): pass

class J:
    def __getitem__(self): pass
    def __len__(self): pass
    def __contains__(self): pass
    def __iter__(self): pass
    def __reversed__(self): pass
    def index(self): pass
    def count(self): pass

assert isinstance(A(), collections.abc.Container)
assert isinstance(B(), collections.abc.Hashable)
assert isinstance(C(), collections.abc.Iterable)
assert isinstance(D(), collections.abc.Iterator)
assert isinstance(E(), collections.abc.Reversible)
assert isinstance(F(), collections.abc.Generator)
assert isinstance(G(), collections.abc.Sized)
assert isinstance(H(), collections.abc.Callable)
assert isinstance(I(), collections.abc.Collection)
assert isinstance(J(), collections.abc.Sequence)  # this assertion fails

Примечание: меня не заботили сигнатуры метода и его тела намеренно, так как функция isinstance, похоже, не проверяетих.

...