首先 yeild之前要充分理解生成器这个东西 ,通常的,一个数组或者一个list的循环很好理解,而在python中无论是什么对象都可以将其循环,
L = [x * x for x in range(5)] print(L)
上面这段代码生成了一个list对象,它的输出为
[0, 1, 4, 9, 16]
可以看到这是一个普通的list对象,然后使用python的生成器将其变成一个生成器对象(把中括号换成括号)
L = (x * x for x in range(5))
print(L)
#下面是输出 <generator object <genexpr> at 0x000002C6DECDD048>
可以看出现在这个已经是一个生成器对象了,之后使用使用这个生成器去输出里面的内容了
在我的理解里 ,yeild就是使用了生成器机制的语法,使用了yeild,这个函数就会变成可迭代对象,yeild就是返回每一次迭代的结果(相当于return),
值得注意是yield返回之后,再次循环进入之后,会从上次退出的地方进入