При проверке в документации 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
, похоже, не проверяетих.