yield函数c语言,yield的用法
我来解释一下这个程序:
首先大家要知道为什么这个函数可以用在for循环中。不用问,因为这个函数是可迭代的,也就是这个函数可以每次都返回一个值。
但是我们在gen()函数里看不到__iter__()和next() 方法。其实它隐藏在yield里。高级语言就是这样,隐藏了好多东西。这个和c
语言就不同了。C语言可以看到每个细节。在这里程序执行到yield 1的时候就停止了,下面的程序不再执行,然后返回一个值“1”.
当下一个for的之后程序接着往下执行到yeild 2。程序停止执行,然会返回一个值“2”。但是还有一个问题就是,最后yield下面的"next again" 会打印出来呢?这也可能就是在执行完最后一个yield 的时候,for i in gen()的时候, 发生了一些什么动作,导致最后一个yield后面的代码也被执行了。
如果我们修改一下这个程序如下:
#!/usr/bin/env python
#__metaclass__ = type
def gen():
print 'enter'
yield 1
print 'next'
return
print 'next 2'
yield 2
print 'next 3'
for i in gen():
print i
#######################
程序打印如下:
enter
1
next
看明白了这就是yield和return的区别。yield可以向下运行。而return返回后这个函数余下的部分就不能执行了。
4: yield 的原理
yield函数c语言,yield的用法相关推荐
- python yield函数_python之yield函数
yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法. 只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子: def addlist( ...
- C语言struct 函数,c语言struct的用法
C语言中先申明结构体,也就是定义结构体具体形式,而后可以把它当做普通数据类型来修饰变量,也可以在定义类型时后面直接跟着定义几个变量,下面小编就为你介绍c语言struct的用法. 基本定义:结构体,通俗 ...
- python yield函数的用法
什么是yield函数? yield函数是python里面的关键字,带有yield的函数相当于一个生成器generator.当你使用一个yield的时候,对应的函数就是一个生成器 在python里面类似 ...
- php yield 详解,PHP yield 协程 生成器用法的了解
写在前面 这篇文章,要和大家探讨的是 PHP yield 在 生成器用法,不带 foreach,for, while 循环的那种.就讨论 yield 将一个函数变成为生成器的用法.关于yield 特性 ...
- 五分钟理解yield在python中的简单用法,让你不再迷惑
很多同学无论是在学习python还是使用python的过程中,都会遇到yield关键字,这个让人头大的问题,今天,就给大家分享一下我自学yield的心路历程 基本概念: (1)在 Python 中,使 ...
- arduino yield函数的作用_深入理解yield
yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法. 只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子: def addlist( ...
- yield( )函数的使用
yield函数在并发编程中是非常重要的一个概念,尤其在多核计算机还不是那么普及的年代,要完成一个"并发"程序,是不得不借助yield函数的. 我们知道,yield的意思是" ...
- Python语言学习之字母G开头函数使用集锦:global用法之详细攻略
Python语言学习之字母G开头函数使用集锦:global用法之详细攻略 global全局变量用法 global全局变量:python使用的变量默认一定是用局部变量:如果想使用作用域之外的全局变量,则 ...
- Python语言学习之字母A开头函数使用集锦:assert用法之详细攻略
Python语言学习之字母A开头函数使用集锦:assert用法之详细攻略 assert断言的用法 assert断言用法:防御性的编程.运行时对程序逻辑的检测.合约性检查(比如前置条件,后置条件).程序 ...
最新文章
- Question: Short And Long Read Sequencing
- 智能哲学:“学习机器”与“机器学习” ——解读图灵思想中的人工智能
- No module named cv2
- 04Hadoop中的setPartitionerClass/SortComparator/GroupingComparator问题
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建8 - 估计噪声参数
- dbunit使用_使用dbUnit,JSON,HSQLDB和JUnit规则进行数据库单元测试
- FiddlerScript-常用总结
- 【Java从0到架构师】SpringMVC - 特殊的请求参数
- UML基础与应用系列文章汇总
- Enterprise Library 2.0 发布了...
- 100多套毕业论文答辩PPT模板百度网盘链接
- 台式计算机 cpu型号大全,电脑cpu的型号有哪些?
- mysql实现oracle的同义词_Oracle 同义词synonym 学习
- 实现HTML的简单压缩
- Mask to Polygons mask转Polygons并保存为labelMe json文件
- 机器学习:python实现LDA降维算法
- EMC设计的四大技巧
- Linux——从命令行配置网络、编辑网络配置文件
- [Java] 枚举类型
- 傅里叶谱方法-傅里叶谱方法求解基本偏微分方程(一维波动方程、 二维波动方程、一维非线性薛定谔方程)及其Matlab程序实现