python contains魔法方法_Python魔法方法 容器部方法详解

这篇文章主要介绍了Python魔法方法 容器部方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

为了加深印象,也为了以后能够更好的回忆,还是记录一下。

序列(类似集合,列表,字符串),映射(类似字典)基本上是元素的集合,要实现他们的基本行为(协议),不可变对象需要两个协议,可变对象需要4个协议。

__len__(self):返回元素的数量,(为不可变对象需要的协议之一)=====> len

__iter__返回一个迭代器,具有了__next__方法后,给for使用。

__contains__ 代表 in的意思 xx.__contains__ (22) ==>22 in xx一个效果

__getitem__(self, key)或者__getitem__(self, index), 返回执行输入所关联的值(为不可变对象需要的协议之一)

__setitem__(self, key, values) 或者 __setitem__(self, index, values) , 设置指定输入的值对应的values

__delitem__ (self, key) 删除指定key的值

__missing__这个有意思,跟__getattr__有的一比,是找不到这个key,触发条件。前面用列表测试了,晕死了(只对字典有效。)

__del__, 析构函数当这个类不存在实例对象时执行。

下面我编写一个自定义类似列表的类,实例后该类默认前面有10个None参数,且不能删除前面5个空None。(随口说的,开始写了)

def check_index(index):

if index < 5:

raise IndexError('index must greater than 10')

class S_List:

def __init__(self):

self.ll = [None] * 10

def __len__(self): # 提取参数长度

return len(self.ll)

def __getitem__(self, index): # 取出参数

return self.ll[index]

def __setitem__(self, index, value): # 设置参数

check_index(index)

self.ll[index] = value

def __delitem_

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值