Python yield 用法
一、环境
python 3.6
二、yield 说明
yield 是一个生成器,可以用于迭代。也是一个类似 return 的关键字,迭代一次遇到yield时就返回yield后面(右边)的值。
重点是:下一次迭代时,从上一次迭代遇到的yield后面的代码(下一行)开始执行。
三、代码实战
# -*- coding: utf-8 -*- ## for 循环调用
## 第一次循环 n = 2, i = 0; yield i*2 = 0 打印 for i = 0 ,停在这个位置
## 第二次循环 执行下一个语句执行,打印 after i = 0 ; i= 1 满足循环条件 yield i*=2 ,打印 for i = 2
## 第三次循环 执行下一个语句执行,打印 after i = 1; i= 2 不满足循环条件 退出 。打印 others def yield_kim(n): # 0 1
for i in range(n):
yield i*2 # yield就类似 return 返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后开始
print("after i=",i)
print("<--------------Others-------------->") ## for cycle
for i in yield_kim(2):
print("for i=",i) #第一次输出 for i = 0
#第二次输出 after i= 0 ; for i= 2
#第三次输出 after i= 1 ; <--------------Others--------------> ## 普通调用----------------------
def yield_kim2(n):
print("n =",n)
a = yield n*2
print("a = ",a) k = yield_kim2(2)
k2 = next(k) # 执行后 yield n*2 表达式的值为 4 ,a 还未赋值 #输出 n = 2
四、结果截图
Python yield 用法的更多相关文章
- Python yield用法浅析(stackoverflow)
这是stackoverflow上一个关于python中yield用法的帖子,这里翻译自投票最高的一个回答,原文链接 here 问题 Python中yield关键字的用途是什么?它有什么作用?例如,我试 ...
- python yield用法 (tornado, coroutine)
yield关键字用来定义生成器(Generator),其具体功能是可以当return使用,从函数里返回一个值,不同之处是用yield返回之后,可以让函数从上回yield返回的地点继续执行.也就是说,y ...
- python yield用法举例说明
1 yield基本用法 典型的例子: 斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到.1 2 3 5 8…… def fab(ma ...
- Python yield用法
yield 官方称是一种生成器,每每遇到这样包含这个关键字的代码,往往有些难读.def testyield(count): for x in xrange(count): print "te ...
- Python yield 的基本概念和用法
之前解析MQTT协议时,需要做一个等分字节流的操作,其中用到了yield关键字,如下: def get_var_length(hstring): m = 1 v = 0 for element in ...
- python中yield用法
在介绍yield前有必要先说明下Python中的迭代器(iterator)和生成器(constructor). 一.迭代器(iterator) 在Python中,for循环可以用于Python中的任何 ...
- 【转】Python yield 使用浅析
转载地址: www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/ Python yield 使用浅析 初学 Python 的开发者经 ...
- Python yield 使用浅析(转)
Python yield 使用浅析 初学 Python 的开发者经常会发现很多 Python 函数中用到了 yield 关键字,然而,带有 yield 的函数执行流程却和普通函数不一样,yield 到 ...
- Python高级用法总结
Python很棒,它有很多高级用法值得细细思索,学习使用.本文将根据日常使用,总结介绍Python的一组高级特性,包括:列表推导式.迭代器和生成器.装饰器. 列表推导(list comprehensi ...
随机推荐
- 从零打造在线网盘系统之Hibernate查询与更新技术
欢迎浏览Java工程师SSH教程从零打造在线网盘系统系列教程,本系列教程将会使用SSH(Struts2+Spring+Hibernate)打造一个在线网盘系统,本系列教程是从零开始,所以会详细以及着重 ...
- MacBook Pro Retina 安装WIN7 - 对抗模糊及其它
最近对虚拟机里的WIN7受够了,把整个虚拟机都删了,准备装双系统. 安装过程还是很简单的,网上教程一大堆,就是通过MAC OS X自带的BootCamp工具来管理整个安装过程,我是用外置光驱安装的,没 ...
- oracle之用户名密码包含特殊字符时候怎么使用sqlplus登录
oracle有时候用户密码包含一些特殊字符直接登录会报错,需要使用以下方式登录sqlplus sqlplus 'username/"password"' PS:整体使用单引号括起来 ...
- Asm 常用资源
masm:http://www.aogosoft.com/masm:http://www.asmirvine.comasm:http://asm.yeah.netwin32asm:http://win ...
- LAMP开发(1)
apache web服务器软件,最近款的有7兆大小,工作:监听端口,接收请求,解析HTTP协议,转发给PHP比如:当一个客户端的请求发过来的时候,通常客户端(浏览器),请求发送给某一台IP,这个IP肯 ...
- RPN网络
Region Proposal Network RPN的实现方式:在conv5-3的卷积feature map上用一个n*n的sliding window(论文中n=3)生成一个长度为256(ZF网络 ...
- (2.14)Mysql之SQL基础——游标
(2.14)Mysql之SQL基础——游标 关键词:Mysql游标 -- (1)定义游标 declare cur_name cursor for select * from table_name wh ...
- 循环链表的实现与操作(C语言实现)
循环链表是还有一种形式的链式存贮结构.它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环. 循环链表的操作 1,循环链表的新操作 2, 获取当前游标指向的数据元素 3, 将游标重置指向链 ...
- python第三方模块之paramiko模块
目录: paramiko模块介绍 paramiko模块安装 paramiko模块使用 一.paramiko模块介绍 paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件 ...
- JAVA正则表达式 Pattern和Matcher(转)
1.简介: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher. 首先一个Pattern实例订制了一 ...