我想说现在在网上查找一个问题,全是copy的一堆定义和概念,读了一圈还是蒙。至少也得有个演示代码吧(吐槽)。。。。
直接来看代码
def foo(num):
print("starting")
while num<10:
num=num+1
yield num #yeild关键之->生成器函数
print("end")
for n in foo(0):
print(n)
这是运行结果
starting
1
2
3
4
5
6
7
8
9
10
end
>>>
结果解释
1.我们知道带有 yeild关键字的函数就是一个生成器函数了- for i in num(3):首先去执行num函数将参数0传入,然后在
num函数里一旦遇到 yeild关键字就将yeild 后面的量返回给for i in num(0)语句中的i然后执行一遍for循环体内部的语句。
3.在执行完一遍循环体内部的语句后,返回到 num函数中yeild语句的下一条接着执行,知道遇到下一个yeild语句重复上诉步骤,知道生成器函数执行完毕。