前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中自定义序列的实现

python中自定义序列的实现

作者头像
刘金玉编程
发布2019-08-16 11:17:02
6660
发布2019-08-16 11:17:02
举报
文章被收录于专栏:编程创造城市编程创造城市

知识回顾:

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

本节知识视频教程

文字讲解开始:

一、序列

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

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

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

二、序列的原理

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

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

  1. len获取长度,对应__len__;
  2. 增加字典的键值对通过字典名称[键]=值,对应__setitem__; 获取字典的值,使用字典名称[键] ,对应__getitem__;
  3. 删除字典中某个键值对,使用del 字典名称[键],对应__delitem__

三、自定义类的序列

通过序列的各项操作与魔法方法的对应关键,我们可以自定义一个自己的序列。使用类来定义类中的序列,这样可以方便我们操作类中的一些属性和方法。

四、总结强调

1.掌握序列的实现原理

2.掌握类的自定义序列方法

__len__

__setitem__

__getitem__

__delitem__

本节源码:

代码语言:javascript
复制
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"])
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程创造城市 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档