在Python文档中检查abstract base classes for containers的表时,我无法创建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
似乎没有检查它们,因此我没有刻意关心方法签名和主体。