ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

精简易懂yield解释。

2022-08-26 12:01:47  阅读:155  来源: 互联网

标签:utf coding yield duck 精简 易懂


精简易懂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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有