day13 生成器 迭代器
Posted daien522556
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day13 生成器 迭代器相关的知识,希望对你有一定的参考价值。
一 迭代器
可以使用dir(函数来检查类的内部定义的函数
特点:
__iter__() 获取迭代器
__next__(获取最前面这个元素
s="123" for c in s : print(c) 使用dir()来查看函数 ret=dir(str) #字符串中有__ iter__()获取迭代器 print(ret) 我们通过__iter__()来获取到迭代器 s="我昨天去天安门了" it=s.__iter__() #获取到迭代器,吧子弹装弹夹中 print(it.__next__()) print(it.__next__()) print(it.__next__()) print(it.__next__()) print(it.__next__()) print(it.__next__()) #最后一个元素 继续__next__()会报错
二 生成器(初识)
本质就是迭代器
函数中如果出现了yield,这个函数是生成器函数
这个时候执行函数,获取到生成器
使用__next__执行到send()之前执行__next__()
生成器的有点:
节省内存
def func(): print("111") return 222 # return 结束一个函数 ret=func() print(ret) def func(): print("111") yield 222 #如果函数中有yield这个函数是一个生成器函数 print("333") yield 444 gen=func() ret=gen.__next__() #打印111 执行这个函数 print(ret) #打印 111 222 ret2=gen.__next__() #打印 333 print(ret2) #111 222 333 444 # .__next__是一个一个执行的
以上是关于day13 生成器 迭代器的主要内容,如果未能解决你的问题,请参考以下文章