Python高阶专题:序列类型之序列类继承关系

No.序列类的继承关系

Pyhton操作是通过Python的协议约束的,序列对象的操作也不例外,只有满足了某种协议,序列才有了相对应的操作。通过类的继承使得序列的功能越来丰富

1.序列类的类继承源码
|--|from collections import abc
|--|--|from _collections_abc import __all__
|--|--|--|--|__all__ = ["Sequence", "MutableSequence"]
1.1 Sequence的类继承源码
class Iterable(metaclass=ABCMeta): /*定义迭代协议的类*/
	pass
class Sized(metaclass=ABCMeta): /*定义序列尺寸的类*/
	pass
class Container(metaclass=ABCMeta):
	pass
/*顶层序列类继承类*/
class Reversible(Iterable):
	pass
class Collection(Sized, Iterable, Container):
	pass
/*最顶层的序列类*/
class Sequence(Reversible, Collection):
	pass
1.2 MutableSequence的类继承源码
class MutableSequence(Sequence):
	/*特有的协议*/
	@abstractmethod
    def __setitem__(self, index, value):
        raise IndexError
    @abstractmethod
    def __delitem__(self, index):
        raise IndexError
1.2 MutableSequence与Sequence的区别

MutableSequence :可迭代类型序列
Sequence :不可迭代类型序列
在类继承关系中最底层的MutableSequence实现了可以动态修改序列的协议 setitem ,delitem

2.序列类的类继承关系图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值