python awaitable_对于Python中可被await对象的一点研究

本文探讨了Python中可被await的对象,包括:由async定义的原生协程对象、types.coroutine装饰的生成器协程、有__await__方法的对象和CPython C API中的特定对象。文章通过实例说明了这四种类型的awaitable对象,并指出在Tornado中,可await的方法通常返回Awaitable或Future。
摘要由CSDN通过智能技术生成

可被Await的4种对象

Python3.5中新增加了关于async和await语法和定义了何为Coroutines对象,在平时使用时,会分不清哪些能够await,所以记录下对于可被await的对象的理解.

根据PEP 492,可被await的对象主要分为4类:

A native coroutine object returned from a native coroutine function.

A generator-based coroutine object returned from a function decorated with types.coroutine().

An object with an __await__ method returning an iterator.

Objects defined with CPython C API with a tp_as_async.am_await function, returning an iterator (similar to __await__ method).

对于以上的4种对象,我将就自己的理解进行下列解释,如有不同的意见欢迎指点.

1. Async定义的函数

在PEP 492中,同时也定义了async语法,主要用于在函数定义时,使该函数变为一个native coroutinefunction,也就是在用到async定义的函数时,一样能被await

async def func():

pass

async def main():

await func()

2. 装饰器types.coroutine()修饰的函数

但是不仅仅使用types.co

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值