Python筆記 關鍵字yield有什麼作用

2021-08-19 11:21:46 字數 1215 閱讀 6309

要理解yiled還需要理解生成器,而要理解生成器,首先需要理解迭代器。

迭代器:

所有你可以用在for...in...語句中的都是可迭代的:比如lists,strings,files...因為這些可迭代的物件你可以隨意的讀取所以非常方便易用,但是你必須把它們的值放到記憶體裡,當它們有很多值時就會消耗太多的記憶體.

生成器:

生成器也是迭代器的一種,但是你只能迭代它們一次.原因很簡單,因為它們不是全部存在記憶體裡,它們只在要呼叫的時候在記憶體裡生成:

[python]

view plain

copy

>>> mygenerator = (x*x 

forx 

inrange(

3))  

>>> for

i in

mygenerator:  

...    print

(i)  01

4 生成器和迭代器的區別就是用()代替,還有你不能用for i in mygenerator第二次呼叫生成器:首先計算0,然後會在記憶體裡丟掉0去計算1,直到計算完4.

yield的用法和關鍵字return差不多,下面的函式將會返回乙個生成器:

[python]

view plain

copy

>>> 

defcreategenerator():  

...    mylist = range(3

)  ...    for

i in

mylist:  

...        yield

i*i  

...  

>>> mygenerator = creategenerator() # 建立生成器

>>> print

(mygenerator) 

# mygenerator is an object!

0xb7555c34

>  

>>> for

i in

mygenerator:  

...     print

(i)  01

4 要理解yield你必須先理解當你呼叫函式的時候,函式裡的**並沒有執行.函式僅僅返回生成器物件,這就是它最微妙的地方。

python學習筆記 關鍵字

python 3中的關鍵字 幾個關鍵字的解釋 true 類似於c 裡面的bool真。false 類似於c 裡面的bool假。and 邏輯運算子,和c 相同的是都是同真為真,但是不同的是,python中返回型別不是bool型別,而是當結果為真時邏輯運算的最後乙個真值,否則返回邏輯運算的第乙個假值。or...

this關鍵字筆記

1.問題提出 需求 在實際程式設計中,我們可能有這樣的需求,當我們建立乙個物件後,就希望該物件自動的擁有某些屬性 例如,我們建立了乙個person物件,就希望該物件自動擁有name和age屬性 function person var p1 new person window.alert p1.nam...

new關鍵字 this關鍵字 base關鍵字

使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...