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('烧饼'))

浙公网安备 33010602011771号