admin管理员组

文章数量:1585968

                                              生成器


目录

                                              生成器

一、生成器函数

二、 send() 

三、yield form

四、生成器表达式

五、生成器作用 


生成器的本质就是迭代器。

生成器包括两种:生成器函数和生成器表达式

一、生成器函数

一个包含yield关键字的函数就是一个生成器函数。并且yield不能和return共用,并且yield只能用在函数内。

(1).生成器函数执行之后会得到一个生成器作为返回值,并不会执行函数体。

(2).执行了__next__()方法之后才会执行函数体,并且获得返回值。

(3).next()内置方法,内部调用生成器函数的__next__()方法。

(3).yield和return相同的是可以返回值,但是不同的是yield 不会结束函数

练习1:创建一个生成器,并且调用

# 创建生成器
def generator():
    print('xxx')
    yield
    print('zzz')

# 接收返回值
ret = generator()
print(ret)  # 返回一个生成器对象 <generator object generator at 0x0000000002165888>
调用__next__()方法执行生成器
ret.__next__()  # xxx 执行函数体,遇到yield结束
#ret.__next__()  # StopIteration 

本文标签: 生成器Python