协程

作为协程的生成器

  • 协程使用生成器函数定义
  • 如果协程只需从客户接收数据,那么yield右边没有关键字,产出为隐式指定的None
  • 调用函数得到生成器对象
  • next方法启动生成器,send方法传回数据,同时相当于next到下一个yield,完成时抛出StopIteration

终止协程和异常处理

  • 协程中的异常会导致协程终止,传给next或者send方法的调用方。继续使用会报出StopIteration异常
  • throw方法可以把异常传给协程,当然,它不要就会再传回来。。。
  • close会传入GeneratorExit异常,这个异常不处理或者抛出StopIteration的话,调用方不报错

让协程返回值

  • 3.3以后,协程可以返回值
  • 调用时捕获StopIteration异常然后取出e.value
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 从语法上来看,协程和生成器类似,都是定义体中包含yield关键字的函数。yield在协程中的用法:在协程中yiel...
    JokerW阅读 1,856评论 0 0
  • Coroutine in Python 引言: 本文出自David Beazley 的关于协程的PPT,现在笔者将...
    LumiaXu阅读 1,710评论 4 8
  • 句法上看, 协程与生成器类似, 都是定义体中包含yield关键字的函数。 具体的协程的使用: 1.在协程中yiel...
    WolfLC阅读 910评论 0 1
  • 楼下卖菜老人两天没来了。 像这种情况并不多见,大家猜测着,期盼着。 天热得让人窒息,难...
    云天雨风阅读 515评论 6 7
  • 时间:19:30-20:10 书籍 《笑谈相声》P1-P17 书摘: 心得: 大理浅说,小节细说。独到见解,褒贬生...
    hinnata阅读 151评论 0 0

友情链接更多精彩内容