python生成器的send方法
官方文档:
generator.send(value)
恢复执行并向生成器函数“发送”一个值。 value 参数将成为当前 yield 表达式的结果。 send() 方法会返回生成器所产生的下一个值,或者如果生成器没有产生下一个值就退出则会引发 StopIteration。 当调用 send() 来启动生成器时,它必须以 None 作为调用参数,因为这时没有可以接收值的 yield 表达式。
示例:
def test():for i in range(5):sig = yield iprint('send by:', sig)a = test()print(a.__next__()) # 运行生成器,在yield处停止
print(a.send('a')) # 将“a”传递给sig变量,并在下一个yield处停止,返回1
print(a.send('b')) # 将“b”传递给sig变量,并在下一个yield处停止,返回2
print(a.__next__()) # 运行生成器,在yield处停止,sig为None
输出:
0
send by: a
1
send by: b
2
send by: None
3
python生成器的send方法相关推荐
- Python生成器的send方法、递推函数、匿名函数及常用内置函数
1.生成器的send方法 在使用yield方法创建生成器时,不仅可以使用next方法进行取值,还可以通过send方法向生成器的内部传值 1.1 什么是send方法? send方法相当于高级的next方 ...
- Python生成器对象send()方法用法
关于生成器基本用法请参考详解Python生成器函数和生成器对象的原理和用法 >>> def f(): yield from 'abcdefg' #使用yield表达式 ...
- python 生成器 send_python(可迭代对象,迭代器,生成器及send方法详解)
一.可迭代对象 对象必须提供一个__iter__()方法,如果有,那么就是可迭代对象, 像列表,元祖,字典等都是可迭代对象 可使用isinstance(obj,Iterable)方法判断 1 from ...
- Python系列(七):用栗子带你深入了解生成器的send()方法
一.问题引入 在Python中,可以使用生成器来一次返回单个元素,从而可以避免大量占用内存.下面例子中计算房价函数house_price便是一个生成器的栗子,该函数接收两个参数,其中unit_pric ...
- Python生成器(send,close,throw)方法详解
<Python生成器>一节中,详细介绍了如何创建一个生成器,以及生成器的基础用法.本节将在其基础上,继续讲解和生成器有关的一些方法. Python生成器send()方法 我们知道,通过调用 ...
- Python生成器及send用法讲解
- 生成器 我们调用一个普通的Python函数时,一般是从函数的第一行代码开始执行,结束于return语句.异常或者函数结束(可以看作隐式的返回None).一旦函数将控制权交还给调用者,就意味着全部结 ...
- ret php,php生成器的send方法详解,php yield send
[一].基本用法 首先看看官方对send方法的解释:Sets the return value of the yield expression and resumes the generator (u ...
- python3 之 生成器的send()方法
在上一篇文章里我们学习到了用__next__()方法去遍历生成器,且函数中的yield 标识符 左侧是没有 变量= 的.类似于这样: 文章地址:https://blog.csdn.net/weixin ...
- 生成器的send方法
send 和next区别 next:唤醒并继续执行 send:唤醒并继续执行 发送信息到生成器内部. def fib(max):n,a,b = 0,0,1while n < max:msg = ...
最新文章
- Openstack组件实现原理 — Glance架构(V1/V2)
- 不是内部或外部命令也不是可运行的程序?
- angularjs与PHP,我应该混合AngularJS与PHP框架吗?
- c语言不同类型指针间的强转,C语言中不同的结构体类型的指针间的强制转换详解...
- java用thinkpadx1_还用老的办公本? 处理文件速度怎够用
- mysql的主从分离_Mysql的主从分离配置
- freemarker html 引入script_HTML编码规范
- linux head命令作用,Linux查看文件内容之head命令
- android 服务器返回302,Android WebView 内处理302重定向不跳转的解决
- Jenkins自动化部署容器
- IOS开发笔记(1)---Hello World
- idea-导入其他项目模块的包爆红
- 【编程珠玑】第四章 编写正确的程序
- Windows Azure AppFabric 入门教学(七):多播(Multicast)
- Linux服务器查看日志方法小结
- ECharts类图表数据实时更新
- JS中如何设置背景图片?
- 迷茫的剑客----网站设计师! -----静水流深
- 神经网络做什么比较合适,神经网络和计算机网络
- 人工智能对医疗和健康产业的冲击和革命——意识上传技术展望