欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python yield

程序员文章站 2022-05-02 07:49:18
def task(): print('start') yield hello('dufeixiang') #阻塞当前函数运行而运行另外一个函数,另一个函数中可以再返回当程序最后阻塞的地方继续运行。def hello(name): print(name)task() task().__next__() ......
def task():
print('start')
yield hello('dufeixiang') #阻塞当前函数运行而运行另外一个函数,另一个函数中可以再返回当程序最后阻塞的地方继续运行。

def hello(name):
print(name)

task()
task().__next__()
-------------------------------------------------------------------------------------
def task1():
while true:
name=yield #接收来自 send的值
print('name is',name)

def task2():
for i in range(2):
a=task1()
a.__next__() #必须next 方式启动迭代器
a.send(i) #将值传送到上次yield中断的地方,并从上次中断的地方开始运行
task2()

当以个函数中使用了yield后函数就成了一个迭代器,就具有了__netxt__()方法.