11 2017 档案
摘要:1 分享流畅的python一书, coroutine 章节中的出租车仿真的例子. 2 3 from collections import namedtuple 4 import queue 5 import random 6 Event = namedtuple('Event', 'time process action') 7 8 def taxi_sim...
阅读全文
摘要:1 yield from 2 yield from x 表达式对 x 对象所做的第一件事是,调用 iter(x),从中获取迭代器。因 3 此, x 可以是任何可迭代的对象。 4 可是,如果 yield from 结构唯一的作用是替代产出值的嵌套 for 循环,这个结构很有 5 可能不会添加到 Python 语言中。 yield from 结构的本质作用无...
阅读全文
摘要:1 终止协程和异常处理 2 3 协程中未处理的异常会向上冒泡,传给 next 函数或 send 方法的调用方(即触发协程的对象) 4 终止协程的一种方式:发送某个哨符值,让协程退出。内置的 None 和 5 Ellipsis 等常量经常用作哨符值。 Ellipsis 的优点是,数据流中不太常有这个值。有人把 6 StopIteration 类(类本...
阅读全文
摘要:1 预激装饰器 2 3 讨论如何终止协程之前,我们要先谈谈如何启动协程。使用协程之前必须预激,可是这一 4 步容易忘记。为了避免忘记,可以在协程上使用一个特殊的装饰器。接下来介绍这样一个 5 装饰器。 6 7 预激协程的装饰器, 8 from functools import wraps 9 10 def corountine(func): 11 ''' 12 ...
阅读全文
摘要:1 Coroutine 练习 1 - Coroutine Exercises 1 2 3 字典中为动词 “to yield” 给出了两个释义:产出和让步。对于 Python 生成器中的 yield 来 4 说,这两个含义都成立。 yield item 这行代码会产出一个值,提供给 next(...) 的调 5 用方;此外,还会作出让步,暂停执行生成器,让调用方继续工作,直到需要使用另...
阅读全文
摘要:1 协程 - Coroutines 2 3 Awaitable Objects, 4 Awaitable Objects 通常由 __await__() 生成, 而 5 Coroutine objects 是由 async def 关键字定义的函数 return 的 Awaitable Objects. 6 Note, 7 被 types....
阅读全文