對Python中的yield的用法體會

2021-09-21 18:05:37 字數 814 閱讀 5248

did they move long enough to yield a vector?----美劇《24小時》中的一句台詞

def get_cubes(end_n):

print("求從 1 到 %d 的立方:" % end_n)

for item in range(1,end_n+1):

yield item**3

def func():

print("i am a normal function")

d = func() #fun()沒有返回值,猜猜 d 是神馬型別

cubes = get_cubes(10) #foo()有返回,猜猜會不會是整型print("cubes的型別:",type(cubes))

print("get_cubes的型別:",type(get_cubes))

print("d的型別:",type(d))

print("func的型別:",type(func))

for num in cubes:

print(num,' ',end='')

print("可以這樣使用生成器")

for item in get_cubes(15):

print(item,' ',end='')

print("也可以這樣使用生成器")

cube_list = [item for item in get_cubes(20)]

print(cube_list)

print("可以使用生成器進行列表生成與解析")

關於Python中的yield

在介紹yield前有必要先說明下python中的迭代器 iterator 和生成器 constructor 一 迭代器 iterator 在python中,for迴圈可以用於python中的任何型別,包括列表 元祖等等,實際上,for迴圈可用於任何 可迭代物件 這其實就是迭代器 迭代器是乙個實現了迭...

關於Python中的yield

在介紹yield前有必要先說明下python中的迭代器 iterator 和生成器 constructor 一 迭代器 iterator 在python中,for迴圈可以用於python中的任何型別,包括列表 元祖等等,實際上,for迴圈可用於任何 可迭代物件 這其實就是迭代器 迭代器是乙個實現了迭...

Python中的yield用法

在python中,我們將帶有 yield 的函式稱之為 generator 生成器 generator可以一邊迴圈一邊計算,是可迭代物件,也就是說可以使用for迴圈來迭代出generator的各個值。一般為了說明generator,都會使用斐波那契數列來舉例,這裡也不例外 如結果所示,呼叫 fab ...