generator 和yeild

参考 https://www.cnblogs.com/xybaby/p/6322376.html


使用yield那么该函数就变成了一个生成器方法。

def zheng(n,m):
    if n<m:
        # print(n)
        yield n
    else:
        return
    #zheng(n+1,m) #这样使用无效,因为zheng()是返回一个generator对象 且没调用next的话是不执行的所以程序只执行一遍。
    yield from zheng(n+1,m) #使用yield from 解决该问题。


z = zheng(1,10)#创建了一个生成器
# next(z)
for i in z:
    print(i)



# g = (x for x in range(10)) #生成器生成式

  

猜你喜欢

转载自www.cnblogs.com/weiwuxian/p/11368918.html