0
0
0
---
PEP 492 新的异步编程语法
夏小草 发表于 2015年04月20日 10:48 | Hits: 1690
PEP 492 - Coroutines with async and await syntax,是一个可能在Python3.5 或Python3.6 中实现的新的'协程'式的异步编程模式。这次的修改将引入两个新的关键字,async 和 await,其用法与C# 中的async / await 非常相似。
Python3.4 中, 已经添加了asyncio,用于简化异步编程。async / await 与asyncio 使用的是同样的机制,依然是基于generator 的所谓'explicit coroutine' 模式。
新的'协程'语法
async def read_data(db): data = await db.fetch('SELECT ...') ...
为了方便异步下的资源管理,PEP 492 还引入了 async with 语法, async with 用于 AsyncContextManager 对象:
class AsyncContextManager: async def __aenter__(self): await log('entering context') async def __aexit__(self, exc_type, exc, tb): await log('exiting context')
使用上和with语法比较接近:
async def commit(session, data): ... async with session.transaction(): ... await session.update(data) ...
我要给这篇文章打分:
可以不填写评论, 而只是打分. 如果发表评论, 你可以给的分值是-5到+5, 否则, 你只能评-1, +1两种分数. 你的评论可能需要审核.