使用消息来源,卢克!
Sequence不实现自己的
__subclasshook__,并且
__subclasshook__的父项的所有实现
Sequence都具有如下检查:
class Iterable: ... @classmethod def __subclasshook__(cls, C): if cls is Iterable: # <<<< if _hasattr(C, "__iter__"): return True return NotImplemented
但是,您可以
register()将您的班级显式为
Sequence:
Sequence.register(S)
至于为什么
Sequence不实现的原因
__subclasshook__,请参见问题16728(标题最初是
“ collections.abc.Sequence应该提供__subclasshook__”
)。可以通过说一个序列来概括这个问题,这取决于谁使用它的需要:
__len__和__getitem__。[…]collections.abc.Sequence是一个更加丰富的界面。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)