其他分享
首页 > 其他分享> > 精简易懂yield解释。

精简易懂yield解释。

作者:互联网

精简易懂yield解释。

# -*- coding: utf-8 -*-

def SayDuck():
    print("开始数鸭子:")
    duck = 0
    while duck<=10:
        duck +=1
        yield duck
        #yield 之后,下次的next开始的地方是接着上一次的next停止的地方执行的,所以调用next的时候,生成器并不会从SayDuck函数的开始执行,只是接着上一步停止的地方开始
        print("循环里的鸭子有{0}只".format(duck))


def SayDuck2():
    print("开始数鸭子:")
    duck = 0
    while duck<=10:
        duck +=1
        return duck
        #return 之后 永远也走不到这里,这是普通的函数return
        print("循环里的鸭子有{0}只".format(duck))

def SayDog():
    print("开始数狗子:")
    duck = 0
    while duck<=10:
        duck +=1
        yield duck
        # 这是一个数狗子的生成器,依次生成返回的数

if __name__ == '__main__':
    begin = SayDuck()
    begindj = SayDuck2()
    beginDog = SayDog()

    print("数鸭子函数返回的类型是:{}".format(type(begin)))
    print("数鸭子2函数返回的类型是:{}".format(type(begindj)))


    print(next(begin))
    print(next(begin))
    print(next(begin))

    #数狗子效果
    print(next(beginDog))
    print(next(beginDog))

 

标签:utf,coding,yield,duck,精简,易懂
来源: https://www.cnblogs.com/xxxyz/p/16627138.html