必须__enter__返回一个等待的东西吗?

时间:2019-10-25 15:02:34

标签: python-asyncio python-3.7

PEP 492中对异步上下文管理器的定义感到困惑:

  

添加了两个新的魔术方法:__aenter__和__aexit__。两者都必须返回 awaitable

示例代码为:

class AsyncContextManager:
    async def __aenter__(self):
        await log('entering context')

    async def __aexit__(self, exc_type, exc, tb):
        await log('exiting context')

但是这两个协程什么也不返回... 是吗?


解决此难题的一些可能方法:

  1. 我不明白await的作用。
  2. 我对函数如何选择其返回值一无所知。
  3. 以上两者。

0 个答案:

没有答案