首页 > 编程语言 > 详细

python中yield的用法-简单明了!

时间:2020-07-26 00:10:26      阅读:112      评论:0      收藏:0      [点我收藏+]

我也要吐槽一下,网上搜了不少yield的用法,看得一头雾水,直到我看到这篇文章https://blog.csdn.net/mieleizhi0522/article/details/82142856/,豁然开朗!

我也仿照博文写了下例子:

def demo():
print("开始执行...")
while 1:
res = yield ‘这是返回值‘
print("res:",res)
d1 = demo()
print(d1)
print(next(d1))
print("*"*20)
print(next(d1))

执行结果如下:

开始执行...
这是返回值
********************
res: None
这是返回值

代码解释,个人理解,说得不对希望能够点出:

d1 = demo();生成一个对象,不会输出任何内容

print(d1); 这里不输入任何内容,因为程序第一次遇到yield就暂停了,即使yield前面有输出语句,一样给输出

print(next(d1)); 程序会接着yield继续执行,第二次遇到yield,return“这是返回值”,加起来就会会输出开始执行...
这是返回值

print(next(d1));再次执行next(d1),相当于第三遇到yield,因为上一步相当于被return,res并没有赋值,所以为None,继续执行while,第四次遇到yield,输出“这是返回值”

 

python中yield的用法-简单明了!

原文:https://www.cnblogs.com/qianjunjun/p/13378600.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!