{site_name}

{site_name}

🌜 搜索

Python PEP 380是一个Python增强提案,引入了一种更便捷的语法来委托生成器在另一个生成器中执行子生成器

Python 𝄐 0
python编程,python代码大全,python安装教程,python学了能干嘛,python在线咨询,python下载
Python PEP 380是一个Python增强提案,引入了一种更便捷的语法来委托生成器在另一个生成器中执行子生成器。这种技术被称为“协程”或“生成器委托”。

在Python2和Python3中,您可以使用yield语句从生成器函数中返回值,还可以将值发送回生成器函数以供下一次调用使用。PEP 380引入了yield from语句,它允许您简洁而优雅地委托给其他生成器。

下面是一个例子:

python
def sub_generator():
yield 1
yield 2

def main_generator():
yield 'start here'
yield from sub_generator()
yield 'end here'

for value in main_generator():
print(value)


在这个例子中,我们定义了两个生成器:sub_generator()和main_generator()。sub_generator()只是返回数字1和2。现在,我们想要在main_generator()中包含sub_generator(),但不想手动编写代码来迭代并产生其输出。相反,我们可以使用yield from语句迭代子生成器并将其值发送回main_generator()。

在上面的示例中,当您调用main_generator()时,它会首先返回'start here',然后会委托到sub_generator()并在其中运行。在sub_generator()完成后,控制权将返回到main_generator(),并继续执行打印字符串 'end here',最终输出为:


start here
1
2
end here