Python__協成函數part1
阿新 • • 發佈:2017-07-30
src bsp sta none spl 得到 splay class int
yield的功能:
1:把函數的執行結果封裝好__iter__和__next__,即得到一個叠代器
2:與return功能類似,都可以返回值,但不同的是,return只能返回一次值,而yield可以返回多次值
3:函數暫停與再繼續的狀態是由yield保存的
1 def init(func): 2 def wrapper(*args,**kwargs): 3 g = func(*args,**kwargs) 4 next(g) 5 return g 6 return wrapper 7 8View Code9 @init 10 def eater(name): 11 print(‘%s start to eat‘%(name)) 12 food_list = [] 13 while True: 14 food = yield food_list 15 food_list.append(food) 16 print(‘%s eat %s‘%(name,food)) 17 g = eater(‘alex‘) 18 print(g.send(‘骨頭‘)) 19 20 @init 21 def func(): 22 print(‘我開動啦!‘) 23 while True: 24 food = input(‘>>: ‘).strip() 25 print(g.send(food)) 26 27 func()
Python__協成函數part1