为什么我不能在异步函数内使用'yield from'?
- 论坛
- 为什么我不能在异步函数内使用'yield from'?
8 浏览
为什么我不能在异步函数内使用'yield from'?
在Python 3.6中,我能够在协程中使用yield
,但无法使用yield from
。
下面是我的代码。在第3行,我等待另一个协程。在第4行,我尝试yield from
一个文件。为什么Python 3.6不允许我这样做?
async def read_file(self, filename): with tempfile.NamedTemporaryFile(mode='r', delete=True, dir='/tmp', prefix='sftp') as tmp_file: await self.copy_file(filename, tmp_file) yield from open(tmp_file)
以下是Python 3.6对上述代码引发的异常:
File "example.py", line 4 yield from open(tmp_file) ^ SyntaxError: 'yield from' inside async function