python中自定义序列的实现

知识回顾:

  • 重要的类的方法super
  • super()可以直接调用继承的父类中的同名方法。
  • 默认情况下调用的是父类的方法,然后再调用超类的方法。

本节知识视频教程

文字讲解开始:

一、序列

原有学习过的序列有:字典、元组、列表、字符串等。

序列的各个类型对应使用符号:

  • 字典{key:value}
  • 元组()
  • 列表[ ]
  • 字符串”” ‘’

二、序列的原理

以下开始以字典举例,其它的序列类似。

我们在调用序列的时候,其实一些操作对应魔法方法:

  1. len获取长度,对应__len__;
  2. 增加字典的键值对通过字典名称[键]=值,对应__setitem__; 获取字典的值,使用字典名称[键] ,对应__getitem__;
  3. 删除字典中某个键值对,使用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"])

原文发布于微信公众号 - 编程创造城市(bcczcs)

原文发表时间:2019-08-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券