Python 高階 生成器2 (send方式)

2021-09-27 09:20:33 字數 521 閱讀 9888

示例**:

# 生成器方式

def create_num_2(all_num):

a, b = 0, 1

current_num = 0

while current_num < all_num:

ret = yield a # 乙個函式內部有yield語句,那這個函式就變為乙個生成器模板

print(">>>>ret>>>", ret)

a, b = b, a+b

current_num += 1

return 'finish!'

obj = create_num_2(10)

# next方式不能傳引數

num = next(obj)

print(num)

# send方式可以傳引數

# send中的值傳到「ret = yield a」的ret

num = obj.send("hahahha")

print(num)

生成器高階

def generator print 123 count yield 1 print count print 456 yield 2g generator ret g.next print ret ret g.send 套你大象 send的效果與next一樣 send在獲取下乙個值時,會在上乙個y...

Python高階 生成器(Generators)

迭代器是乙個讓程式設計師可以遍歷乙個容器 特別是列表 的物件。然而,乙個迭代器在遍歷並讀取乙個容器的資料元素時,並不會執行乙個迭代。維基百科 可迭代物件 iterable python中任意的物件,只要它定義了可以返回乙個迭代器的iter方法,或者定義了可以支援下標索引的getitem方法 這些雙下...

Python高階篇 生成器

python中有很多方便遍歷的資料結構。這些結構都是iterable物件。主要包括一下集中 集合資料型別 list tuple dict set str等 和生成器 generator 集合資料型別對於大家應該不是難題,這裡重點來 一下generator這個有點複雜的迭代物件。首先來看一下如何生成g...