python 基礎(十六)生成器用法舉例

2022-09-09 16:45:26 字數 998 閱讀 7287

import

time

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():把引數傳送過去在呼叫一次

協程

import

time

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 生成器函式 執行之後會...