#生成器
def generator():
for i in range(200):
yield '哇哈哈%s' %i
g = generator() #调用生成数函数,接受作用
ret = g.__next__() #每执行一次g.__next__就是从生成器取值
print(ret)
ret = g.__next__() #每执行一次g.__next__就是从生成器取值
print(ret)

def generator():
for i in range(200):
yield '哇哈哈%s' %i
g = generator() #调用生成数函数,接受作用
ret = g.__next__() #每执行一次g.__next__就是从生成器取值
print(ret)
ret = g.__next__() #每执行一次g.__next__就是从生成器取值
print(ret)
num = 0
for i in g:
num += 1
if num > 10:
break
print(i)

生成器的作用:一条一条输出,输出一个获取一个,不像return,输出后就马上返回,不能执行后面的函数。

!!!send 获取下一个值的效果和next基本一致,但是获取下一个值时,要给上一个yield的位置传递一个数据。

!!!第一次使用生成器时,是用next获取下一个值,最后一个yield不能接受外部的值

#next send
def generator():
print(123)
content = yield 1
print('======',content)
print(456)
yield 2
g = generator() #调用生成数函数,接受作用
ret = g.__next__() #每执行一次g.__next__就是从生成器取值
print('***',ret)
ret = g.send('hello') #send的效果和next一样
print('***',ret)

最后一个yield如果想使用的话,解决办法如下:

def generator():
print(123)
content = yield 1
print('======',content)
print(456)
arg = yield 2
''''''
yield

生成器(generator,yield),next,send的更多相关文章

  1. python生成器中yield和send分析

    生成器 在python中生成器是指用代码实现迭代器的的功能本质还是迭代器,只不过是代码实现迭代器功能.在python中生成器是由函数实现的,通常我们在函数中加入yeild就可以实现生成器. 生成器中y ...

  2. 【转】 Python生成器generator之next和send运行流程

    原文链接:https://blog.csdn.net/pfm685757/article/details/49924099 对于普通的生成器,第一个next调用,相当于启动生成器,会从生成器函数的第一 ...

  3. Python复习之生成器 generator

    生成器 generator def h(): print "hello" m = yield 5 print "m:", m d = yield 12 prin ...

  4. 生成器(generator)内部解析

    #http://kb.cnblogs.com/page/87128/(未看完)

  5. 【Python】迭代器、生成器、yield单线程异步并发实现详解

    转自http://blog.itpub.net/29018063/viewspace-2079767 大家在学习python开发时可能经常对迭代器.生成器.yield关键字用法有所疑惑,在这篇文章将从 ...

  6. 生成器generator

    生成器generator 定义:一个函数调用时返回一个迭代器,那这个函数就叫做生成器(generator),如果函数中包含yield语法,那这个函数就会变成生成器 代码: def cash_out(a ...

  7. Python生成器与yield

    列表推导与生成器表达式 当我们创建了一个列表的时候,就创建了一个可以迭代的对象: >>> squares=[n*n for n in range(3)] >>> f ...

  8. python迭代器与生成器及yield

    一.迭代器(itertor) 1.可迭代: 在Python中如果一个对象有__iter__()方法或__getitem__()方法,则称这个对象是可迭代的(iterable). 其中__iter__( ...

  9. 003_生成器(generator)内部解析

    #http://kb.cnblogs.com/page/87128/(未看完)

随机推荐

  1. logstash笔记(二)——grok之match

    官方文档: https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html 基本语法: %{SYNTAX:SEMA ...

  2. 有关 Azure 机器学习的 Net# 神经网络规范语言的指南

    Net# 是由 Microsoft 开发的一种用于定义神经网络体系结构的语言. 使用 Net# 定义神经网络的结构使定义复杂结构(如深层神经网络或任意维度的卷积)变得可能,这些复杂结构被认为可提高对数 ...

  3. sql server 索引阐述系列五 索引参数与碎片

    -- 创建聚集索引 create table [dbo].[pub_stocktest] add constraint [pk_pub_stocktest] primary key clustered ...

  4. Salesforce Sales Cloud 零基础学习(二) Account 和 Contact

    上一篇我们讲了Sales Cloud 中关于一个公司的产品和定价手册的概念,产品需要卖给企业客户(包括渠道伙伴以及合作伙伴等等)或者是个人客户,那客户信息存在哪里?针对企业客户,通过谁去串联起和企业客 ...

  5. 7-Flink的分布式缓存

    分布式缓存 Flink提供了一个分布式缓存,类似于hadoop,可以使用户在并行函数中很方便的读取本地文件,并把它放在taskmanager节点中,防止task重复拉取. 此缓存的工作机制如下:程序注 ...

  6. JavaScript和Ajax部分(5)

    41. jQuery中的load方法一般怎么用的? 答:load方法一般在 载入远程HTML 代码并插入到DOM中的时候用通常用来从Web服务器上获取静态的数据文件. 如果要传递参数的话,可以使用$. ...

  7. vue-13-swiper组件的使用

    vue-13-swiper 是一个滑动库, 非常丰富的滑动样式, 轮播图等 https://www.swiper.com.cn https://github.com/surmon-china/vue- ...

  8. [CF286E] Ladies' shop

    Description 给出 \(n\) 个 \(\leq m\) 且不同的数 \(a_1,\dots,a_n\),现在要求从这 \(n\) 个数中选出最少的数字,满足这 \(n\) 个数字都可以由选 ...

  9. 【转载】使用Jquery操作Cookie对象

    Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术.jQuery是一个封装好的JavaScript库,使用jQuery可以极大地简化了Java ...

  10. IIS配置文件上传大小限制

    2018-08-28 IIS配置文件上传大小限制 问题:上传文件过大导致上传不了,直接在webconfig里做以下配置会导致程序出错,这个需要在IIS里配置 <system.web> &l ...