Pthon魔术方法(Magic Methods)-容器相关方法
Pthon魔术方法(Magic Methods)-容器相关方法
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.容器相关方法汇总
__len__:
内建函数len(),返回对象的长度(>=0的整数),如果把对象当作容器类型看,就如同list或者dict。
bool()函数调用的时候,如果没有__bool__()方法,则会看__len__()方法是否存在,存在返回非0为真。 __iter__:
迭代容器时,调用,返回一个新的迭代器对象。 __contains__:
in成员运算符,没有实现,就调用__iter__方法遍历 __getitem__:
实现self[key]访问。序列对象,key接受整数位索引,或者切片。对于set和dict,key为hashable。key不存在引发KeyError异常。 __settitem__:
和__getitem__的访问类似,是设置值的方法。 __missing__:
字典或者子类使用__getitem__()调用时,key不存在执行该方法。
二.案例展示
1>.__missing__案例展示
#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie class A(dict):
def __missing__(self, key):
print("Missing key : {}".format(key))
return 0 a = A()
print(a["name"]) #以上代码执行结果如下:
Missing key : name
0
2>.将购物车类改造成方便操作的容器类案例
#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie class Cart:
def __init__(self):
self.items = [] def __len__(self):
return len(self.items) def additem(self,item):
self.items.append(item) def __iter__(self):
yield from self.items def __getitem__(self, index): #索引访问
return self.items[index] def __setitem__(self, key, value): #索引赋值
self.items[key] = value def __str__(self):
return str(self.items) def __add__(self, other): #算数运算符+
self.items.append(other)
return self cart = Cart()
cart.additem("Iphone 11")
cart.additem("康佳单反")
cart.additem("篮球") #长度,bool
print(len(cart))
print(bool(cart)) #迭代
for item in cart:
print(item) #in
print("篮球" in cart)
print("Iphone 11" in cart) #索引操作
print(cart[1])
cart[1] = "Jason Yin" #链式编程实现加法
print(cart + 100 + 200 + 300)
print(cart.__add__(2019).__add__(2120)) #以上代码执行结果如下:
3
True
Iphone 11
康佳单反
篮球
True
True
康佳单反
['Iphone 11', 'Jason Yin', '篮球', 100, 200, 300]
['Iphone 11', 'Jason Yin', '篮球', 100, 200, 300, 2019, 2120]
Pthon魔术方法(Magic Methods)-容器相关方法的更多相关文章
- php中的魔术方法(Magic methods)和魔术常亮
PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct(),类的析构函数 __cal ...
- Pthon魔术方法(Magic Methods)-描述器
Pthon魔术方法(Magic Methods)-描述器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.描述器概述 1>.描述器定义 Python中,一个类实现了&quo ...
- Pthon魔术方法(Magic Methods)-反射
Pthon魔术方法(Magic Methods)-反射 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.反射概述 运行时,区别于编译时,指的时程序被加载到内存中执行的时候. 反射 ...
- Pthon魔术方法(Magic Methods)-上下文管理
Pthon魔术方法(Magic Methods)-上下文管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.上下文管理方法 __enter__: 进入与此对象相关的上下文.如果 ...
- Pthon魔术方法(Magic Methods)-可调用对象
Pthon魔术方法(Magic Methods)-可调用对象 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.可调用对象方法 __call__: 类中定义一个该方法,实例就可以像 ...
- Pthon魔术方法(Magic Methods)-运算符重载
Pthon魔术方法(Magic Methods)-运算符重载 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python运算符对应的魔术方法 1>.比较运算符 <: ...
- Pthon魔术方法(Magic Methods)-bool
Pthon魔术方法(Magic Methods)-bool 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.bool方法 __bool__: 内建函数bool(),或者对象放在逻 ...
- Pthon魔术方法(Magic Methods)-hash
Pthon魔术方法(Magic Methods)-hash 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.hash方法 __hash__: 内建函数hash()调用的返回值,返 ...
- Pthon魔术方法(Magic Methods)-可视化
Pthon魔术方法(Magic Methods)-可视化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.关于可视化的魔术方法简介 __str__: str()函数,format ...
随机推荐
- 自动生成LR脚本且运行
背景:作为一个测试,特别是性能测试,尤其在活动的测试,时间紧,有很多要测的,我们的LR11因为浏览器兼容问题全录制不了脚本了,用浏览器加代理或手机加代理录制,我感觉好麻烦 ,所以就想如果能用脚本把所有 ...
- Linux 就该这么学 CH04 VIM编辑器和Shell命令脚本
0 概述 1 Vim编辑器 在linux 中一切都是文件,而配置一个服务就是修改其配置文件的参数. vim 编辑器有三种模式:命令模式,末行模式和编辑模式. 命令模式:控制光标移动,对文件进行操作. ...
- 【记录】【java】JDK8新特性Stream方式遍历集合
由于是以流方式,所以怎么操作也不改变原来的集合 1.普通遍历forEach List<String> list = new ArrayList(); list.add("a&qu ...
- 【LOJ2292】[THUSC2016]成绩单(区间DP)
题目 LOJ2292 分析 比较神奇的一个区间 DP ,我看了很多题解都没看懂,大约是我比较菜罢. 先明确一下题意:abcde 取完 c 后变成 abde ,可以取 bd 这样取 c 后新增的连续段. ...
- 007 SpringCloud 学习笔记3-----Eureka注册中心
1.Eureka概述 (1)引子 网约车出现以前,人们出门叫车只能叫出租车.一些私家车想做出租却没有资格,被称为黑车.而很多人想要约车,但是无奈出租车太少,不方便.私家车很多却不敢拦,而且满大街的车, ...
- Python 基础 while 循环
Python 基础 while 循环 while 循环 在生活中,我们遇到过循环的事情吧?比如循环听歌.在程序中,也是存才的,这就是流程控制语句 while 基本循环 while 条件: # 循环体 ...
- Python入门 常量 注释 基础数据类型 用户输入 流程控制
Python入门 一.常量 在Python中,不像其他语言有绝对的常量,修改会报错,在Python中有个约定俗成的规定--常量就是将变量名大写. 尽量保持不更改的一种量 , 这个常量有是干什么的呢 其 ...
- docker的容器和镜像的清理
Docker用户会在使用docker一段时间后发现宿主机的磁盘很容易就快被占满,并且手动docker rmi [imgName]似乎并不能释放磁盘,貌似想删掉的镜像依然在宿主机中,下面针对这一问题提出 ...
- nginx访问认证+目目录浏览
概述 在实际工作中,企业中有些网站,要求使用账号和密码才能访问,如网站后台.phpMyAdmin .Wiki 平台 等模块ngx_http_auth_basic_module 允许使用“HTTP基本认 ...
- 【Maven基础入门】02 了解POM文件构建
温故 上一节我们说过:Maven 是一个基于POM文件的构建工具,当然离不开POM文件 POM文件是一个XML标记语言表示的文件,文件就是:pom.xml 一个POM文件包含了项目的基本信息,用于描述 ...