Python 为什么可以';'async def`coroutine函数是否包含任何'yield`?
简而言之,从Python来看,这是为什么Python 为什么可以';'async def`coroutine函数是否包含任何'yield`?,python,python-3.x,Python,Python 3.x,简而言之,从Python来看,这是为什么 async defcoroutine函数不能包含任何yield 谢谢。这在引入async/wait并禁止在其内部使用yield的基本原理中说明: 当前Python支持通过生成器(PEP)实现协同路由 PEP 380中引入的语法产生了更大的影响。 这种方法有许多缺点: 很容易将协程与常规生成器混淆,因为它们 共享相同的语法;对于新开发人员来说尤其如此 函数是否为协程取决于是否存在 指从其主体中的语句产生的收益或收益,这可能导致 当此类陈述出现在或从中消失
async def
coroutine函数不能包含任何yield
谢谢。这在引入
async
/wait
并禁止在其内部使用yield
的基本原理中说明:
当前Python支持通过生成器(PEP)实现协同路由
PEP 380中引入的语法产生了更大的影响。
这种方法有许多缺点:
- 很容易将协程与常规生成器混淆,因为它们 共享相同的语法;对于新开发人员来说尤其如此
- 函数是否为协程取决于是否存在 指从其主体中的语句产生的收益或收益,这可能导致 当此类陈述出现在或从中消失时,出现不明显的错误 重构期间的函数体
- 支持异步调用是非常重要的 限于语法上允许屈服的表达式,限制 句法特征的有用性,如with和for语句
在Python3.6中,出现了异步发电机并解除了禁令。现在,在async def函数中使用
yield
,将创建一个异步生成器 谢谢。在异步def
函数中使用是否会产生协同程序?协程的定义是什么?协程是一个函数,它可以产生值并在执行过程中接受调用者的值。