python yield

什么是生成器:

只要在函数体内出现yield关键字,那么再执行函数就不会执行函数代码,会得到一个结果,该结果就是生成器

 

 

yield的功能:
1、yield为我们提供了一种自定义迭代器对象的方法
2、yield与return的区别1:yield可以返回多次值 #2:函数暂停与再继续的状态是由yield帮我们保存的

#python 遇到yield会暂停,如果后边跟的有值会返回 类似return 但不会终止程序

def func():
    print('=====>1')
    yield 1
    print('=====>2')
    yield 2
    print('=====>3')
    yield 3

#生成器就是迭代器
a = func()
print(a)
res = next(a)
print(res)
-----------------------------
<generator object func at 0x000001CBEC002C78>
=====>1
1

 

 

 

 

自定义range
def my_range(start,stop,step): while start < stop: yield start start += step for i in my_range(1,10,2): print(i)

 

yield带返回值

def eat():
    foo = 111
    while True:
        food = yield foo
        print('吃%s' % food)

g = eat()
next(g)
print(g.send('烧饼'))

 

posted @ 2018-11-02 13:30  漂泊的蒲公英  阅读(105)  评论(0)    收藏  举报