python的关键字及作用_python的关键字yield有什么作用

展开全部

yield是python中定义为生成器32313133353236313431303231363533e59b9ee7ad9431333363376432函数,其本质是封装了  __iter__和__next__方法   的迭代器;

与return返回的区别:return只能返回一次值,函数就终止了,而yield能多次返回值,每次返回都会将函数暂停,下一次next会从上一次暂停的位置继续执行;

以下用示例说明:def test(a,b):

print("from test(),a+b=%d" %(a+b))

return("我是return返回的")

def test_yield(a,b):#函数体中有yield关键字,函数就可以称为生成器函数

print("from test_yield,a+b=%d" %(a+b))

yield("我是第一次碰到yield关键字返回的")#程序运行时碰到yield,退出函数体并记录位置,下次调用跳过之前运行的代码

print("from test_yield,a*2=%d" %(a*2))

yield("我是第二次调用碰到yield关键字返回的")

print(test(11,33))

g = test_yield(11,33)

print(next(g))#通过next()调用生成器函数

print(next(g))#第二次调用生成器函数

'''

执行结果:

from test(),a+b=44

我是return返回的

from test_yield,a+b=44

我是第一次碰到yield关键字返回的

from test_yield,a*2=22

我是第二次调用碰到yield关键字返回的

'''

你可能感兴趣的:(python的关键字及作用)