生成器

淺唱寂寞╮ 提交于 2019-12-05 19:47:35

生成器:

生成器的本质就是迭代器
生成器函数 —— 本质上就是我们自己写得函数
生成器的表现形式    生成器函数    生成器表达式生成器函数:    含有yield关键字的函数就是生成器函数yield不能和return共用且需要写在函数内
    特点:        调用函数的之后函数不执行,返回一个生成器        每次调用next方法的时候会取到一个值        直到取完最后一个,在执行next会报错
#生成器函数 : 执行之后会得到一个生成器作为返回值
ret = generator()
print(ret)
print(ret.__next__())

def generator():
    print(1)
    yield 'a'
    print(2)
    yield 'b'
    yield 'c'
g = generator()
for i in g:
    print(i)
ret = g.__next__()
print(ret)
ret = g.__next__()
print(ret)
ret = g.__next__()
print(ret)

send

send 获取下一个值的效果和next基本一致只是在获取下一个值的时候,给上一yield的位置传递一个数据使用send的注意事项    第一次使用生成器的时候 是用next获取下一个值    最后一个yield不能接受外部的值
def generator():
    print('abc')
    php = yield 1
    print('<=>',php)
    print('qwe')
    yield 2
g = generator()
ret = g.__next__()
print('***',ret)
ret = g.__next__()
print('***',ret)

def generator():
    print('abc')
    php = yield 1
    print('<=>',php)
    print('qwe')
    yield 2
g = generator()
ret = g.__next__()
print('***',ret)
ret = g.send('hello')
print('***',ret)

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!