生成器
# Iterator # 迭代器
#Gerator #生成器
# 生成器就是迭代器,生成器是我们自己写出来的
#生成器函数
#生成器表达式
def generator_func(): #生成器函数 print(123) yield 'aaa' #return print(456) yield 'bbb'
g = generator_func() #generator 生成器 - 生成器的本质就是一个迭代器
ret = g.__next__()
print(ret)
ret2 = g.__next__()
print(ret2)
#带yield关键字的函数就是生成器函数
#生成器函数在执行的时候只返回一个生成器,不执行生成器的函数的内容
#从生成器中取值
#1.__next__ 有几个yield就可以取几次
#2. for循环取值 正常取 fori i in g:
#3. 其他数据类型进行强制转换 list(g) 返回一个列表 里面装着生成器的所有内容
# 注意 : 调用生成器函数的时候,要先获取生成器,再进行next取值
生成器中的内容只能取一次,且顺序取值没有回头路,取完为止。
def clothing(): for cloth in range(1,200000): yield '第%s衣服'%cloth v1=clothing() for i in range(50): print(v1.__next__())