1. 程式人生 > >Python__協成函數part1

Python__協成函數part1

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 
 8
9 @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()
View Code

Python__協成函數part1