擅长:python、mysql、java
<p>我在打字时遇到了同样的问题,就这样解决了:</p>
<pre><code>import abc
import contextlib
import asyncio
class TestAbstract(metaclass=abc.ABCMeta):
@contextlib.asynccontextmanager
@abc.abstractmethod
# Here the trick: you must declare an asynchronous generator function,
# not a regular coroutine function so it have to explicitly yield.
async def foo(self):
yield
class SubTest(TestAbstract):
@contextlib.asynccontextmanager
async def foo(self):
yield
async def test_coro():
async with SubTest().foo():
print('OK')
asyncio.run(test_coro())
</code></pre>