一、序列
原有学习过的序列有:字典、元组、列表、字符串等。
序列的各个类型对应使用符号:
- 字典{key:value}
- 元组()
- 列表[ ]
- 字符串”” ‘’
二、序列的原理
以下开始以字典举例,其它的序列类似。我们在调用序列的时候,其实一些操作对应魔法方法:
- len获取长度,对应__len__;
- 增加字典的键值对通过字典名称[键]=值,对应__setitem__;
获取字典的值,使用字典名称[键] ,对应__getitem__; - 删除字典中某个键值对,使用del 字典名称[键],对应__delitem__
三、自定义类的序列
通过序列的各项操作与魔法方法的对应关键,我们可以自定义一个自己的序列。使用类来定义类中的序列,这样可以方便我们操作类中的一些属性和方法。
四、总结强调
1.掌握序列的实现原理
2.掌握类的自定义序列方法
__len__
__setitem__
__getitem__
__delitem__
本节源码:
class MyDict: #类的构造方法 def __init__(self): self.length=0 self.ljydic={} print("已经实例化一个类") #模拟序列操作,获取字典的长度 def __len__(self): return self.length #模拟序列,设置字典 def __setitem__(self, key, value): self.ljydic[key]=value self.length+=1 print("字典增加了一项:",key,"=",value) #模拟序列,获取字典 def __getitem__(self, item): return self.ljydic[item] #模拟序列,进行删除某个项 def __delitem__(self, key): del self.ljydic[key] self.length-=1 #实例化类 md=MyDict() md["aaa"]="老刘" print("字典长度:",len(md),md.ljydic) md["bbb"]="刘金玉" print("字典长度:",len(md),md.ljydic) md["ccc"]="编程创造城市" print("字典长度:",len(md),md.ljydic) #模拟删除 del md["bbb"] print("字典长度:",len(md),md.ljydic) #模拟获取 print(md["ccc"])