通过实例简单了解Python中yield的作用


Posted in Python onDecember 11, 2019

这篇文章主要介绍了通过实例简单了解Python中yield的作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

介绍

我们有时候会发现代码中return的地方,有用yield的,难道他们一样吗?其实,yield与return看起来很像,但实际上完全不同。

使用

def test():
  print("****start****")
  while 1:
    res = yield 1
    print("res:", res)
t = test() # 函数中有yield关键字,所以函数并不会真的执行,而是先得到一个生成器t
print(next(t)) # next让函数开始执行,打印start,然后把1返回给next(t),并把1打印出来,这时res还没赋值
print("*"*10) # 打印十个* 
print(next(t)) # 函数从res = yield开始执行,但是1已经被yield出去了,所以res实际上没有值,就是None,然后while重新循环,1被yield出去打印

# ****start****
# 1
# **********
# res:None
# 1

你绕出来了吗?

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用rabbitmq实现网络爬虫示例
Feb 20 Python
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
Mar 30 Python
Python的函数的一些高阶特性
Apr 27 Python
详解 Python中LEGB和闭包及装饰器
Aug 03 Python
基于Python对象引用、可变性和垃圾回收详解
Aug 21 Python
Django实现快速分页的方法实例
Oct 22 Python
详解K-means算法在Python中的实现
Dec 05 Python
Django 限制用户访问频率的中间件的实现
Aug 23 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
Python设计模式之迭代器模式原理与用法实例分析
Jan 10 Python
用python开发一款操作MySQL的小工具
May 12 Python
关于pytest结合csv模块实现csv格式的数据驱动问题
May 30 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
Dec 11 #Python
centos7中安装python3.6.4的教程
Dec 11 #Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
Dec 11 #Python
Python3 中作为一等对象的函数解析
Dec 11 #Python
opencv3/C++图像像素操作详解
Dec 10 #Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
Dec 10 #Python
Python3的unicode编码转换成中文的问题及解决方案
Dec 10 #Python
You might like
Linux下ZendOptimizer的安装与配置方法
2007/04/12 PHP
PHP中对缓冲区的控制实现代码
2013/09/29 PHP
PHP使用标准库spl实现的观察者模式示例
2018/08/04 PHP
记录几个javascript有关的小细节
2007/04/02 Javascript
JCalendar 日历控件 v1.0 beta[兼容IE&Firefox] 有文档和例子
2007/05/30 Javascript
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
中止javascript执行的方法
2014/02/14 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
js实现简单模态框实例
2018/11/16 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
浅谈VUE中演示v-for为什么要加key
2020/01/16 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
Python 多进程和数据传递的理解
2017/10/09 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
2018/02/13 Python
PyQt5每天必学之布局管理
2018/04/19 Python
详解python分布式进程
2018/10/08 Python
用Python去除图像的黑色或白色背景实例
2019/12/12 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
XML文档面试题
2015/08/05 面试题
大一新生军训时的自我评价分享
2013/12/05 职场文书
岗位工作说明书
2014/07/29 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
员工担保书范本
2015/09/22 职场文书
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
2022/01/18 PostgreSQL