python yield

python学习网 2018-12-25 00:09:50
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__()方法.
阅读(7091) 评论(0)