生成器函式

2021-08-26 02:46:37 字數 792 閱讀 4706

什麼是生成器:

生成器是能夠動態提供資料的物件,生成器物件也是可迭代物件(例項)

生成器有兩種:

生成器函式

生成器表示式

生成器函式的呼叫將返回乙個生成器的物件,生成器物件是乙個可迭代物件

defmyyield

():""" 此函式為生成器函式 """

yield

2yield

3yield

5yield

7""" 此時生成乙個生成器函式 """

""" 但是呼叫這個函式的時候他不會執行"""

gen = myyield() #gen繫結了生成器,為生成器函式物件

"""只有呼叫生成器函式物件的時候他才會執行"""

it = iter(gen) it繫結迭代器

print(next(it)) #生成2

print(next(it)) #生成3

"""用next()呼叫生成器函式物件時,遇到乙個yileld執行一次"""

#也可用在for迴圈當中

for i in gen:

print(i) #2 3 5 7 執行所有yield

生成器函式能減少系統儲存空間,因為要一次資料,生成器才會生成一次資料,不要不生成。

l=[1,2,3,4,5,6,7,8,9,10,...]l是乙個容器,容器占用系統記憶體,在數量相當大的時候體統會儲存不了的。

range(10000000)range不是容器,他不會占用記憶體,他相當於生成器,現用現生成,這樣做節省了系統記憶體空間。

python生成器函式 Python 生成器函式

一 生成器 生成器指的是生成器物件,可由生成器表示式得到,也可使用 yield 關鍵字得到乙個生成器函式,呼叫這個函式得到乙個生成器物件 生成器物件,是乙個可迭代物件,是乙個迭代器 生成器物件,是延遲計算 惰性求值的 1.1 生成器函式 函式體重包含 yield 語句的函式,就是生成器函式,呼叫後返...

生成器函式

pyhon優雅的魔力使生成器函式很特殊,它們像定格相機一樣工作。當乙個標準函式遇到return語句時,它會返回值,然後函式會丟棄內部的所有資料。當下次呼叫時,一切從頭開始。yield語句會做不同的事情。它像return一樣返回乙個值,但是它不會使函式丟棄資料,相反所有資料都被儲存起來。usr bin...

生成器函式

生成器 是可以迭代的,但是你只可以讀取它一次,因為它並不把所有的值放在記憶體中,它是實時地生成資料 mygenerator x x for x in range 3 for i in mygenerator print i 01 4你不可以再次使用for i in mygenerator,因為生成器...