python学习笔记分享(二十八)定制序列

IT Xiao Ang Zai 8月16号

现在,让我们进行继续今天的python学习:

版本:python3.64

编程软件:pycharm

一:协议

要想成功地实现容器的定制,首先要谈一谈协议。协议与其他编程语言中的接口很相似,它规定了那些方法必须要定义。但在python中,协议更像是一种指南。

在Python中,像序列类型(如列表,元组,字符串)或映射类型(如字典)都是属于容器类型。这里要讲定制容器,那就必须要知道,定制容器的一些协议:
1.如果你希望定制的容器是不可变的话,你只需要定义__len__()和__getitem__()方法。

2.如果你希望定制的容器是可变的话,除了定义__len__()和__getitem__()方法,还需要定义__setitem__()和__delitem__()两个方法。

下表列举了定制容器类型相关的魔法方法:

                   魔法方法                           含义
                 __len__(self)   定义当被len()函数调用时的行为(返回容器中元素的个数)
                 __getitem__(self,key)   定义获取容器中指定元素的行为,相当于self[key]
                  __setitem__(self,key,value)   定义设置容器中指定元素的行为,相当于self[key]=value
                  __delitem__(self,key)   定义删除容器中指定元素的行为,相当于del self[key]
                  __iter__(self)   定义当迭代容器中的元素的行为
                  __reversed__(self)   定义当被reversed()函数调用时的行为
                  __contains__(self,item)   定义当使用成员测试运算符(in  或 not in)时的行为

二:下面编写一个不可改变的自定义列表,并记录列表中每个元素被访问的次数

猜你喜欢

转载自blog.csdn.net/ITxiaoangzai/article/details/81747694