2021/6/14 魔术方法、可迭代对象、异常处理
2021/6/14 10:51:06
本文主要是介绍2021/6/14 魔术方法、可迭代对象、异常处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
''' 异常处理 try: except: finally: with: raise 可迭代对象 只要重写了__iter__方法,就是一个可迭代对象 迭代器: 迭代器就是用来迭代取值的,对于序列类型,我们可以使用序号来进行跌打取值 对于非序列类型,我们需要一种不依赖序号的方式来进行迭代取值,因此使用迭代器 迭代器统一了迭代取值的方式 迭代的目的就是不断逼近目标值 class xxx: def __iter__(): return self for in 方法就是调用对象的__iter__方法,获取一个可迭代对象,然后不停调用该对象的next方法 停止迭代器: raise 迭代器的优缺点: 优点: 统一了迭代取值的方式 惰性计算:对于迭代器对象,他表示的是一个数据流,同一时间内,再内存中只会存在一个 值,只有再需要的时候,再调用next方法来迭代取值 而对于列表等容器类型,他们再内存中是直接存入所有元素,容器类型的大小、元素个数 受内存大小限制 缺点: 1. 迭代器的目的就是不断的逼近目标值,所以迭代器只能向前取,不能后退 2. 迭代器对象的迭代没有完成,就永远不知道其长度 3. 对于同一个迭代器,只能有一个for in 循环获取到迭代值 4. 对于未取尽的迭代器,下次调用时,会接着上次的状态 生成器 生成器就是一个特殊的迭代器,其中使用到了状态保存技术 (i for i in range(1, 10)) def xxx(): yield x =xxx() next(x) x.send(None) filter(function(a) ,iterable) map(function(a), iterable) from functools import reduce reduce(function(a), iterable, xx) 魔术方法 __class__ __name__ __module__ __dict__ __doc__ __mro__ __slots__ __init__ __new__ __dir__ __call__ __doc__ __str/repr__ __len__ __hash__ __ne/eq/lt/le/gt/ge__ __add/sub/mul/truediv/pow__ __str/int/setitem/getitem/delitem__ __enter/exit__ '''
这篇关于2021/6/14 魔术方法、可迭代对象、异常处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25JAVA副业资料:新手入门及初级提升指南
- 2024-11-25Java副业资料:入门到实践的全面指南
- 2024-11-25Springboot应用的多环境打包项目实战
- 2024-11-25SpringBoot应用的生产发布项目实战入门教程
- 2024-11-25Viite多环境配置项目实战:新手入门教程
- 2024-11-25Vite多环境配置项目实战入门教程