close的方法主要是关闭子生成器,需要注意的有4点:
1.如果生成器close后,还继续next,会报错StopIteration
 
[图片]
 
 
2.如果我捕获了异常,将GeneratorExit处理了,之后还有一个yield,这时候close之后,还要next会报错RuntimeError异常
 
3. 如果我close之后的代码没有next,另外yield的捕获异常之后也没有yield,那么代码不报错,正常执行
 
4.如果在yield捕或GeneratorExit之后,raise StopIteration方法,close之后也不next,那么代码也不抛出异常,因为子生成器抛出的StopIteration的方法,委托生成器会继续执行,不会影响
 
 
5.如果我close之后,不在next,另外yield中也不捕获异常,代码正常

close yield的更多相关文章

  1. Python 生成器与迭代器 yield 案例分析

    前几天刚开始看 Python ,后因为项目突然到来,导致Python的学习搁置了几天.然后今天看回Python 发现 Yield 这个忽然想不起是干嘛用的了(所以,好记性不如烂笔头.).然后只能 花点 ...

  2. node 异步回调解决方法之yield

    先看如何使用 使用的npm包为genny,npm 安装genny,使用 node -harmony 文件(-harmony 为使用es6属性启动参数) 启动项目 var genny= require( ...

  3. yield生成器及字符串的格式化

    一.生成器 def ran(): print('Hello world') yield 'F1' print('Hey there!') yield 'F2' print('goodbye') yie ...

  4. Python中的生成器与yield

    对于python中的yield有些疑惑,然后在StackOverflow上看到了一篇回答,所以搬运过来了,英文好的直接看原文吧. 可迭代对象 当你创建一个列表的时候,你可以一个接一个地读取其中的项.一 ...

  5. Python yield函数理解

    Python中的yield函数的作用就相当于一个挂起,是不被写入内存的,相当于一个挂起的状态,用的时候迭代,不用的时候就是一个挂起状态,挂起状态会以生成器的状态表现

  6. ecma6 yield

    function * generator(k){ console.log('begin'); var x = yield k; console.log('x:',x); var y = yield x ...

  7. Python yield与实现

    Python yield与实现  yield的功能类似于return,但是不同之处在于它返回的是生成器. 生成器 生成器是通过一个或多个yield表达式构成的函数,每一个生成器都是一个迭代器(但是迭 ...

  8. 可惜Java中没有yield return

    项目中一个消息推送需求,推送的用户数几百万,用户清单很简单就是一个txt文件,是由hadoop计算出来的.格式大概如下: uid caller 123456 12345678901 789101 12 ...

  9. 使用yield进行异步流程控制

    现状 目前我们对异步回调的解决方案有这么几种:回调,deferred/promise和事件触发.回调的方式自不必说,需要硬编码调用,而且有可能会出现复杂的嵌套关系,造成"回调黑洞" ...

  10. GetEnumerator();yield

    GetEnumerator()方法的实质实现: 说明:只要一个集合点出GetEnumerator方法,就获得了迭代器属性,就可以用MoveNext和Current来实现foreach的效果,如上图. ...

随机推荐

  1. 58A

    #include <stdio.h> #include <string.h> int main() { char hel[6]="hello"; char ...

  2. zabbix 配合钉钉群机器人(webhook) 报警

    首先建钉钉群,添加一个自定义机器人拿到webhook zabbix添加一个报警媒介 搞一个shell脚本来启动Python脚本(直接用zabbix调Python脚本不行,不知道什么原因) vim di ...

  3. 32-Python3 MySQL(mysql-connector)

    32-Python3 MySQL(mysql-connector) ''' 创建数据库连接 ''' import pymysql mydb = pymysql.connect( host = '127 ...

  4. 19-Python3 函数

    def area(width,heigh): return width*heigh def print_wecome(name): print('welcome',name) print('Runoo ...

  5. [LeetCode] 367. Valid Perfect Square_Easy tag:Math

    Given a positive integer num, write a function which returns True if num is a perfect square else Fa ...

  6. iNotify.js通知JS 实现浏览器的 title 闪烁、滚动、声音提示、chrome、Firefox、Safari等系统通知。

    https://github.com/jaywcjlove/iNotify     JS 实现浏览器的 title 闪烁.滚动.声音提示.chrome.Firefox.Safari等系统通知. 这是重 ...

  7. Kotlin enum class 匿名类实例

    Kotlin里的枚举类里有新玩意:就是枚举类的常量可以同时看成是一个同名匿名类 既然是类就可以与方法关联 看看官网的代码 如果你有过其它语言的使用枚举的经历,你可能对这个定义和说明很迷惑 我给你一个例 ...

  8. C# Control.Invoke匿名委托

    if (txbValue.InvokeRequired) txbValue.Invoke(new MethodInvoker(delegate() {                          ...

  9. 解决ConfigParser配置option的大小写问题

    通常情况下,我们会这样解析配置文件: confiig = ConfigParser.ConfigParser() config.read('xxx.ini') #这个read表示对某个文件用读打开, ...

  10. scrapy:get cookie from response

    scrapy shell fetch('your_url') response.headers.getlist("Set-Cookie")https://stackoverflow ...