生成器

 

# 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__())
原文地址:https://www.cnblogs.com/ez2z/p/7473972.html