可变集合需要实现: __len__  __getitem__    __setitem__  __delitem__
不可变集合需要实现: __len__  __getitem__

__len__:返回集合长度

__getitem__(self, item) 使用索引访问元素

__setitem__(self, key, value) 对索引赋值,使用 self[key] = value 。
 
__delitem__(self, key) 删除索引值 del self[key]
    
__contains__ 实现in运算符,如果没有实现这个方法python也会调用__getitem__来使in运算符可用

一个简单的例子:

class TemTest:
def __init__(self,):
self.x=[i for i in range(10)]
def __len__(self):
return len(self.x)
def __getitem__(self, item):
return self.x[item]
def __setitem__(self, key, value):
self.x[key]=value
def __delitem__(self, key):
del self.x[key]
def __contains__(self, item):
return item in self.x
def __repr__(self):
return '{}'.format(self.x)
test=TemTest() #实例化
print(len(test)) #返回长度 print(test[0]) #打印下标0的值
print(test[:3]) #切片 test[3]=10 #将下标3的值替换为10
print(test) del test[3] #删除下标3的值
print(test) print(1 in test) #测试in运算符
print(3 in test)
10
0
[0, 1, 2]
[0, 1, 2, 10, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 4, 5, 6, 7, 8, 9]
True
False

最新文章

  1. myeclipse环境下开发freemarker
  2. 制作登录界面,登录成功后把用户名放在session里,在第3个页面读取session显示用户名
  3. Android高级之第十一讲Hybird开发
  4. bootstrap 分页样式代码
  5. Spring 和 MyBatis 环境整合
  6. Almost Prime
  7. 【淡墨Unity3D Shader计划】一间 创建一个游戏场景 & 第一Shader写作
  8. iOS 让CoreData更简单些
  9. Java高级开发工程师面试笔记
  10. Echarts 柱状图配置详解
  11. Java开发软件安装及配置
  12. linux内核中的两个标记GFP_KERNEL和GFP_ATOMIC是用来干什么的?
  13. python 常用的高阶函数
  14. Android开发之SurfaceView
  15. .2-浅析webpack源码之打包后文件
  16. Zabbix 添加主机,获取模板templateID
  17. javascript数组去重复
  18. python 代码的缩进位置决定执行部分
  19. BZOJ3996 TJOI2015线性代数
  20. 在XP系统下如何访问win10共享的打印机

热门文章

  1. web 本地存储 (localStorage、sessionStorage)
  2. leetcode 224. Basic Calculator 、227. Basic Calculator II
  3. WebApi的自定义Filter
  4. 用es6类封装的图片预加载技术!
  5. centos7之NFS使用
  6. 如何查看kernel社区的变更历史
  7. Raspberry pi connect temperature and humidity to onenet (移动云平台)
  8. codeforces721C
  9. Codeforces1100F Ivan and Burgers 【整体二分】【线性基】
  10. mongoDB 文档操作_查