python生成器并行实例
生成器并行实例:
send发送值被yield接受到赋值给baozi变量
#yield作用只是在这里保存这个值的当前状态然后返回之后在调用next,又回到yield
#单纯调用next不会给yield传值,next只是在调用yield,send是调用yield并且传值 import time
#协程
def consumer(name):
print("%s 准备吃包子啦!" %name)
while True:
baozi = yield#send发送值被yield接受到赋值给baozi变量
#yield作用只是在这里保存这个值的当前状态然后返回之后在调用next,又回到yield
#单纯调用next不会给yield传值,next只是在调用yield,send是调用yield并且传值 print("包子[%s]来了,被[%s]吃了!" %(baozi,name)) # c = consumer("dapangxiaozi")
# c.__next__()
# c.send("韭菜馅")
# c.__next__() # def producer(name):
# c = consumer('A') #只是变成生成器
# c2 = consumer('B')
# c.__next__()
# c2.__next__()
# print("老子开始准备做包子啦!")
# for i in range():
# time.sleep()
# print("做了2个包子!")
# c.send(i)
# c2.send(i)
#
# producer("alex")
def producer(name):
c= consumer("A")
c2 = consumer("B")
c.__next__()
c2.__next__()
print("开始吃包子了!")
for i in range():
time.sleep()
print("%s做了1个包子"%name)
c.send(i)
c2.send(i)
producer("alex")
迭代器:
*可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list、tuple、dict、set、str等; 一类是generator,包括生成器和带yield的generator function。 这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。 可以使用isinstance()判断一个对象是否是Iterable对象: *可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator
*生成器一定是迭代器
*可迭代对象加上iter()就可以变成迭代器
python生成器并行实例的更多相关文章
- python第六天 函数 python标准库实例大全
今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...
- python 生成器和递归
生成器 1.定义 问题:python会把对象放到内存中,我们每次定义变量.列表等都会在内存中占用对应的地址块,所以当内存容量一定时,列表的容量会受到内存的限制,而且假如我们创建了一个包含200万个元素 ...
- 快速掌握用python写并行程序
目录 一.大数据时代的现状 二.面对挑战的方法 2.1 并行计算 2.2 改用GPU处理计算密集型程序 3.3 分布式计算 三.用python写并行程序 3.1 进程与线程 3.2 全局解释器锁GIL ...
- 【python之路29】python生成器generator与迭代器
一.python生成器 python生成器原理: 只要函数中存在yield,则函数就变为生成器函数 #!usr/bin/env python # -*- coding:utf-8 -*- def xr ...
- python实现并行爬虫
问题背景:指定爬虫depth.线程数, python实现并行爬虫 思路: 单线程 实现爬虫类Fetcher 多线程 threading.Thread去调Fet ...
- python——生成器
python——生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个 ...
- python 类和实例
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可 ...
- Python 解析XML实例(xml.sax)
已知movies.xml <collection shelf="New Arrivals"> <movie title="Enemy Behind&qu ...
- python生成器、装饰器、正则
包子来了[4],被[mayun]吃了! 包子来了[4],被[mahuateng]吃了! 做了两个包子 包子来了[5],被[mayun]吃了! 包子来了[5],被[mahuateng]吃了! 做了两个包 ...
随机推荐
- HBase 批量删除表 disable_all drop_all
这两命令可以匹配正则表达式,对表进行批量操作,也可以对确定名字的单表操作,在表名不存在时,也不会返回exception,只会有提示信息.\ny是为了实现自动确认,因为这两命令需要用户交互确认. 例子, ...
- 061. Rotate List
题目链接:https://leetcode.com/problems/rotate-list/description/ Example 1: Input: 1->2->3->4-&g ...
- shell一文入门通
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/hebtu666/article/deta ...
- PJzhang:360压缩的用户许可协议和隐私政策阅读
猫宁!!! 参考链接:http://yasuo.360.cn/ 当我们安装一个软件,不管是手机上的还是电脑上的,很少会去看它们的用户许可协议和隐私政策,而有的时候软件甚至都不提醒我们还有用户许可协议和 ...
- 【AMAD】django-silk -- 为Django提供如丝般顺滑的性能测量
动机 简介 个人评分 动机 Django作为一个web框架,进行性能测量是很复杂的,不可以使用传统的程序profile工具. 因为,web app的性能是多维度的,不仅仅是代码执行效率,还包括网络延时 ...
- android webkit 初始化流程
以android 4.2为例 1, android 4.2中 WebViewClassic.java 为 WebView.java的代理类. 2,程序运行后,浏览器首先加载webkit so. Web ...
- OpenStack组件——RabbitMQ消息队列
1.MQ 全称为 Message Queue, 消息队列( MQ ) 是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们. 消息传 ...
- python中True,False与0,1之间的关系
demo1 >>> print(True == 1) >>> print(True == 2) >>> print(False == 0) > ...
- elk 入门 - 分析nginx日志 + json格式 + 有调试的意识 + elk7.2.0
1.本次采用的一台主机,将所有的软件安装一台上进行测试工作. 2.安装部署:https://blog.51cto.com/hwg1227/2299995 3.简单调试 输出rubydebug inpu ...
- mybatis批量更新update-设置多个字段值allowMultiQueries=true
mybatis由于简单易用性得到大家的认可和使用 但是在批量更新操作中,网上介绍的貌似不全,正好今天做个记录,大家一起进步 在实际项目开发过程中,常有这样的需求:根据ids更新表的某一个字段值,这时的 ...