python3-day4(yield)
1.yield
迭代器是访问集合元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退。另外,迭代器的一大优点是不要求事先准备好整个迭代过程中所有的元素。迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁。这个特点使得它特别适合用于遍历一些巨大的或是无限的集合,比如几个G的文件
特点:
- 访问者不需要关心迭代器内部的结构,仅需通过next()方法不断去取下一个内容
 - 不能随机访问集合中的某个值 ,只能从头到尾依次访问
 - 访问到一半时不能往回退
 - 便于循环比较大的数据集合,节省内存
def cash_momey(amount):
while amount > 0:
amount -=100
yield 100
print("com agent tom") atm=cash_momey(500)
print(atm.__next__())
print(atm.__next__())import time def consumer(name):
print("%s 我要准备吃包子"%name) while True:
baozi=yield
print("包子[%s]来了,被[%s] 吃子!"%(baozi,name)) def producer():
c1=consumer('tom')
c2=consumer('tony')
c1.__next__()
c2.__next__()
print("老子开始准备做包子了!")
for i in range(10):
time.sleep(1)
print("做了2个包子!")
c1.send(i)
c2.send(i)
producer() 
python3-day4(yield)的更多相关文章
- 第十三天python3 生成器yield
		
生成器generator 生成器指的是生成器对象,可由生成器表达式得到,也可以使用yield关键字得到一个生成器函数,调用这个函数得到一个生成器对象: 生成器函数 函数体中包含yield语句的函数,返 ...
 - Python3基础 yield 在函数中的用法示例
		
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
 - Python3基础 yield 在无返回值的函数中的简单示例
		
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
 - Python3基础 yield send 变量名= yield i
		
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
 - Python3基础 yield send 获得生成器后,需要先启动一次
		
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
 - Python3基础 yield StopIteration.value获取函数的返回值
		
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
 - Python3基础 yield 创建生成器
		
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
 - Python3基础 yield next 获取生成器生出的值
		
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
 - python 的基础  学习   第四天  基础数据类型
		
1,数字 int 数字主要是用于计算,使用方法并不是很多,就记住一种就可以. #bit_length() 当十进制用二进制表示时,转化为最少二进制的最少位数v = 11data = v.bit_len ...
 - python面试总结1(基础章节)
		
python语言基础 语言特点 python是静态还是动态类型?是强类型还是弱类型 动态强类型语言 动态还是静态指的是编译期还是运作期确定类型 强类型指的是不会发生隐式类型转换 python作为后端语 ...
 
随机推荐
- android 解析json数据格式
			
json数据格式解析我自己分为两种: 一种是普通的,一种是带有数组形式的: 普通形式的:服务器端返回的json数据格式如下: {"userbean":{"Uid" ...
 - onActivityResult不执行 或者 onActivityResult的解决方法
			
开发人员都知道,可以通过使用 startActivityForResult() 和 onActivityResult() 方法来传递或接收参数.然而在一次使用中,还没等到被调用的 Activity 返 ...
 - UVA 714 Copying Books 最大值最小化问题 (贪心 + 二分)
			
Copying Books Before the invention of book-printing, it was very hard to make a copy of a book. A ...
 - 新版ADT出现appcompat_v7的问题
			
问题 更新ADT至22.6.0版本号之后,创建新的安装项目,会出现appcompat_v7的内容.而且是创建一个新的内容就会出现. 事实上appcompat_v7是Google自己的一个兼容包.一个支 ...
 - 怎样修复“Windows/System32/Config/System中文件丢失或损坏”故障
			
怎样修复“Windows/System32/Config/System中文件丢失或损坏”故障 英文原文引自 http://xphelpandsupport.mvps.org/how_do_i_repa ...
 - swift 实现漂亮的粒子效果CAEmitterLayer
			
一些粒子效果 我们经常会在一些游戏或者应用中看到一些炫酷的粒子效果,我们在iOS中也能很轻松的搞一些粒子效果 我们本次做得是一个下雪的效果,看下效果图 源码地址: https://github.com ...
 - C++沉思录之三——设计容器类
			
一.对容器的基本认识 总的来说,容器应该包含放在其中的对象的副本,而不是对象本身. 二.复制容器意味着什么? 通常将容器成为模板,而容器内的对象的类型就是模板参数.Container<T> ...
 - Python序列的方法(转)
			
在快速教程中,我们了解了最基本的序列(sequence).回忆一下,序列包含有定值表(tuple)和表(list).此外,字符串(string)是一种特殊的定值表.表的元素可以更改,定值表一旦建立,其 ...
 - Fiddler使用笔记
			
http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html#basic 1.filter的使用,跟踪某个网站的访问,例如:hr. ...
 - window对象BOM
			
BOM的和新对象是window,他表示流浪器的一个实例,作为一个Global对象,有权访问parseInt()等方法 在全局作用域声明的变量,函数都有钱访问 ; function sayName () ...