python_4
Posted n-n5980
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python_4相关的知识,希望对你有一定的参考价值。
1.迭代器:通过iter()方法获得了list的迭代对象,然后就可以通过next()方法来访问list中的元素了,当容器中没有可访问元素时,会抛出StopIteration异常终止迭代器
data = [1,2,3,4,5] itr = iter(data) print(itr.__next__())
2.自定义迭代器:需要实现__iter__,__next__方法
class CustomRange: def _init__(self, length): self.inx = 0 self.length = length def __iter__(self): return self def __next__(self): if self.inx < self.length: val = self.idx self.idx += 2 return val else: raise StopIteration if __name__ == "__main__": cr = CustomRange(20) print(next(cr)) print(next(cr))
3.生成器,yield
4.生成器与迭代器的区别:
> 通过实现迭代器协议对应的__iter__()和__next__()方法,可以自定义迭代器。对于可迭代对象,for语句可以通过iter()方法获取迭代器,并且通过next方法获取容器的下一个元素
> 生成器是一种特殊的迭代器,内部支持了生成器协议,不需要明确定义__iter__()和__next__()方法
> 生成器通过生成器函数产生,生成器函数可以通过常规的def来定义,但是不用return返回,而是用yield一次返回一个结果
以上是关于python_4的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段
imgwarp.cpp:3143: error: (-215:Assertion failed) _src.total() > 0 in function ‘warpPerspective‘(代码片段