Python知识巩固(生成器)

  1. 生成器是一种特殊的迭代器。没有  iter,next方法,甚至不是一个类,只靠yield
  2. 如果一个函数汇总有 yield  那么就不是一个函数,变成了一个生成器的模板。本来的调用函数就变成了创建一个生成器对象。
    当你在使用它时,第一次从头开始执行到yield暂停;之后它不会从函数的开头开始执行,会从yield下面的语句开始执行,再执行到yield暂停
  3. 如果函数有返回值,可以在最后产生异常的时候捕获
  4. 也可以用 send 来启动生成器,但send不能作为第一次使用,应该使用next,因为send(xx) 传入的参数 就是 yield,所以可以通过send传入的参数修改过程,但不管是next还是send 出来的值都是 yield 后面的值。
    比如  ret = yield a
    send("哈哈")
    ret = "哈哈"

posted @ 2020-03-01 14:18  otome  阅读(146)  评论(0编辑  收藏  举报