浅谈对yield的初步理解


Posted in Python onMay 29, 2017

如下所示:

def go():
  while True:
    data = 1
    r = yield data # data是返回值,r是接收值
    print("data", data)
    print("A1", r)
    data += 1

    r = yield data
    print("data",data)
    r += r
    print("A2", r)
    data += 1

    r = yield data
    print("data",data)
    print("A3", r)
    # 运行时此后若找不到下一个yield,则会报错StopIteration

my = go()
print("my", my)
print("None", my.send(None))
print(my.send("1"))
print(my.send("2"))
print(my.send("3"))

①my.send(None):  意思为启动协程,此步会返回第一个yield后面的data值。

②send一次,运行的代码是两个yield之间的代码,最后返回后一个yield后面的data值,若缺少后一个yield语句,则会报错“Stoplteration”

③r = yield data

   r 为my.send('传入的数据') 传入的数据

   data为此段运行完返回的数据

以上这篇浅谈对yield的初步理解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
对pandas的dataframe绘图并保存的实现方法
Aug 05 Python
实例讲解python中的协程
Oct 08 Python
python GUI图形化编程wxpython的使用
Jul 19 Python
Python高级特性 切片 迭代解析
Aug 23 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
Oct 06 Python
Python input函数使用实例解析
Nov 22 Python
PyCharm如何导入python项目的方法
Feb 06 Python
使用python求解二次规划的问题
Feb 29 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
Mar 24 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
Jul 13 Python
python使用requests库爬取拉勾网招聘信息的实现
Nov 20 Python
分析Python list操作为什么会错误
Nov 17 Python
python多进程和多线程究竟谁更快(详解)
May 29 #Python
python 3利用BeautifulSoup抓取div标签的方法示例
May 28 #Python
Python虚拟环境virtualenv的安装与使用详解
May 28 #Python
python 调用win32pai 操作cmd的方法
May 28 #Python
Python 稀疏矩阵-sparse 存储和转换
May 27 #Python
Django基础之Model操作步骤(介绍)
May 27 #Python
python之PyMongo使用总结
May 26 #Python
You might like
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
Jquery中dialog属性小记
2010/09/03 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
原生js实现数字字母混合验证码的简单实例
2015/12/10 Javascript
jQuery读取XML文件的方法示例
2017/02/03 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
js判断手机系统是android还是ios
2017/03/07 Javascript
JavaScript错误处理和堆栈追踪详解
2017/04/18 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
JS路由跳转的简单实现代码
2017/09/21 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
python实现外卖信息管理系统
2018/01/11 Python
Python错误处理操作示例
2018/07/18 Python
Python二元赋值实用技巧解析
2019/10/25 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
英国最大的百货公司:Harrods
2016/08/18 全球购物
志愿者活动总结
2014/04/28 职场文书
应急处置方案
2014/06/16 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
先进员工获奖感言
2014/08/14 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
个人作风建设心得体会
2014/10/22 职场文书
高三英语教学计划
2015/01/23 职场文书
企业百日安全活动总结
2015/05/07 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书