2024-09-26 17:54:22 发布
网友
集合库提供抽象类及其子类,如MutableSequence及其超级类Sequence。在
MutableSequence
Sequence
子类中抽象方法的必要性是什么?这些抽象方法必须在继承自它们的类中定义。为什么不能用具体的方法来代替呢?在
那么具体方法的实施是什么呢?在
这些类的目的是给你另一个列表对象。它们的存在是为了传达类需要实现哪些方法来遵守给定的协议。在
容器本身并不是容器。因此,您不能为Sequence提供一个具体的__getitem__方法;没有内部状态。提供一个使用_list属性的实现将规定子类应该如何实现这一点,但是代理类(仅举个例子)将没有内部序列状态。在
__getitem__
_list
只有可以用其他方法表示的方法,例如__contains__(returnTrue如果__getitem__不引发异常)或{}(使用递增索引并产生__getitem__的结果,直到它引发异常)才有具体的实现,以方便子类化。在
__contains__
True
那么具体方法的实施是什么呢?在
这些类的目的是给你另一个列表对象。它们的存在是为了传达类需要实现哪些方法来遵守给定的协议。在
容器本身并不是容器。因此,您不能为
Sequence
提供一个具体的__getitem__
方法;没有内部状态。提供一个使用_list
属性的实现将规定子类应该如何实现这一点,但是代理类(仅举个例子)将没有内部序列状态。在只有可以用其他方法表示的方法,例如}(使用递增索引并产生
__contains__
(returnTrue
如果__getitem__
不引发异常)或{__getitem__
的结果,直到它引发异常)才有具体的实现,以方便子类化。在相关问题 更多 >
编程相关推荐