#迭代器
#双下方法,很少直接调用的方法,是通过其他的语法触发的
#可迭代的--可迭代协议,含有__iter__方法(__iter__in dir数据])
#可迭代的一定可以for循环
#迭代器协议含有__next__和__iter__方法
#迭代器一定是可迭代的,可迭代的调用__iter__方法就可以得到一个迭代器
#迭代器的特点
1.很方便,并且所有的数据只能取一次
2.节省内存空间
#生成器--本质就是迭代器
#生成器的表现形式,
1生成器表达式
2生成器函数
*含有yield的函数就是生成器函数
*特点
1调用函数是函数不执行,返回一个生成器
2调用__next__方法会取到一个值,直到取完会报错
又一个文件,从文件里分段读取内容
#readline
#read(10)
#在读出来的内容前加***,再返回给调用者
def generation():
for i in range(1000)
yield "fewffewf"
g=genneration()#调用生成器函数,得到一个生成器
g.__next__()#从生成器里面取内容,预示着代码继续执行
number=0
list
for i in g:
i+=1
if number>50
break
print(i)
#从生成器里面取值的方法
1.for循环
2 通过__next__
3 通过强转print(list(g)不过太占内存了
def genertor():
print(1)
yield "a"
print(2)
yield "a"
ret=genertor()
print(ret.__next__())
print(ret)
print(ret.__next__())
print(ret)