importtime
defconsumer(name):
print('
%s,準備吃包子
'%name)
while
true:
baozi = yield
print('
包子%s來了,被%s吃了
'%(baozi,name))
c = consumer('
clyde')
c.__next__() #
__next__():呼叫一次
b = '
香菇油菜餡
'c.send(b)
#send():把引數傳送過去在呼叫一次
協程
importtime
defconsumer(name):
print('
%s,準備吃包子
'%name)
while
true:
baozi = yield
print('
包子%s來了,被%s吃了
'%(baozi,name))
c = consumer('
clyde')
c.__next__
()def
producer(name):
c = consumer('張三'
) c2 = consumer('的歌'
) c.
__next__
() c2.
__next__
()
print('
我開始準備做包子了')
for i in range(10):
time.sleep(1)
print('
做了乙個包子')
c.send(i)
c2.send(i)
producer(
'name
')
python yield 生成器用法
總結 可以把send 看成是next 的公升級版。send 不僅能像next 一樣觸發生成器的乙個迭代,還能傳入乙個值給yield語句。看下面乙個列子 def func y 1 while true x yield y y 1 print 接收了x format x f func f是乙個初始化好的...
python基礎 生成器
生成器是根據某種演算法得出的一系列元素,需要用到該元素,才會生成出來,比列表節省記憶體空間。生成器相當於儲存演算法,授人以漁,列表之類的是授人以魚。第一種建立生成器的方法 1 gen x 2 for x in range 5 type gen 通過next 函式得到生成器的每個值 next gen ...
python基礎 生成器
生成器函式 def generator print 1 return a ret generator print ret 只要含有yield關鍵字的函式都是生成器函式 yield不能和return共用且需要寫在函式內 def generator print 1 yield a 生成器函式 執行之後會...