生成器

生成器就是迭代器,含有迭代器的一切特性(__nex__,__iter__)

生成器函数即含有yield关键字的函数,当执行生成器函数的时候,函数内的代码不会执行,执行生成器函数,并将其赋值给一个变量时,该变量即为一个生成器对象,对该生成器对象迭代取值,函数内的代码开始按照yield运行

def talk():
    print(1)
    x = yield
    print(x)
    print(2)
    y =yield
    print(y)
    print(3)
    z = yield
    print(z)
g = talk()  #生成一个生成器对象
next(g) #函数中的代码执行到第一个yield之前
next(g)
g.send('a') #send相当于next,只是会把send后面的值赋给yield
#1
#None
#2
#a
#3
原文地址:https://www.cnblogs.com/thanos-ryan/p/14257539.html