Python精简易懂yield解释
精简易懂yield解释。
yield可以理解为return,但是区别于return的是yield之后,还可以继续执行接下来的一系列行为。
return后的内容无法执行了,并且yield返回的是生成器,return是返回的结果类型。
# -*- 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))
有篇博文介绍的不错可以参考一下:
本文作者:xxxyz
本文链接:https://www.cnblogs.com/xxxyz/p/16627138.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步