python中的yield的用法

yield在函数中的功能类似于return,不同的是yield每次返回结果之后函数并没有退出,而是每次遇到yield关键字后返回相应结果,并保留函数当前的运行状态等待下一次的调用
如果一个函数需要多次循环执行一个动作,并且每次执行的结果都是需要的,这种场景很适合使用yield实现。

包含yield的函数成为一个生成器,生成器同时也是一个迭代器,支持通过next方法获取下一个值。

#return与yield的区别
def test(one):
    print("函数启动...")
    step = 2#设置步进长,便于下文理解
    cur = 0#设置步进开始点,便于下文理解
    for i in range(one):
        cur += step
        print("这是函数执行的第"+str(i)+"")
        print("此时步位位于第"+str(cur)+"")
        yield cur#函数执行到此处,实行冻结;专业术语说就是生成器的暂停处
t = test(10)
print(t)
print(next(t))
print(next(t))

https://blog.csdn.net/dcrmg/article/details/78128041

https://blog.csdn.net/qq_44503987/article/details/104950409?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf

posted @ 2020-08-25 10:23  Jason66661010  阅读(699)  评论(0编辑  收藏  举报