後浪小萌新Python 生成器

2021-10-08 21:48:57 字數 632 閱讀 5562

生成器的本質就是迭代器;

生成器其實是能夠產生多個資料的容器,而不是真正同時儲存多個資料的容器

呼叫帶有yield關鍵字的函式就能得到乙個生成器

比較:

呼叫普通函式:a.執行函式體 b.獲取函式返回值

呼叫帶有yield關鍵字的函式:a.不執行函式體 b.獲取到的是生成器物件

a. 乙個生成器能生產多少資料? - 看執行生成器對應的函式,在函式結束的時候能夠遇到幾次yield,就能生產多少個資料

b. 生成器生產的資料是哪些? - 看每次遇到 yield 後面的資料是什麼,產生的資料就是什麼

呼叫函式建立生成器物件的時候不會執行函式體;當獲取生成器中的元素的時候才會執行函式體。

獲取第乙個元素的時候從函式開始開始執行,執行遇到第乙個yield就會停下來,並且將yield後面的資料作為這次獲取到的元素,下次獲取元素的時候從上一次結束的位置接著往後執行函式體直到遇到下乙個yield,並且將新的yield的資料作為新的元素,

以此類推

如果從上次結束的位置開始到函式結束都沒有遇到yield那麼這個生成器就不會再建立資料了,如果是next操作,這個時候會報錯

注:每次呼叫函式的時候都是在建立新的生成器物件

後浪小萌新Python 基礎語法

注釋就是 中說明性的文字,不參與程式的編譯執行 不影響程式的功能 單行注釋 在一行說明性文字前加 這是第一行注釋 這是第二行注釋 這是第三行注釋執行如下 多行注釋 將注釋內容寫在三個單引號或者三個雙引號之間 這是第一行注釋 這是第二行注釋 這是第三行注釋 注 為了防止轉譯,加了縮排,在python中...

後浪小萌新Python 列表基礎

注 列表是容器型資料型別,以 作為容器的標誌,裡面的多個元素用逗號隔開 元素1,元素2,元素3,列表是可變 指的是元素的個數 值和順序可變 列表是有序 列表的元素可以是任何型別資料 同乙個列表可以有多個型別不同的元素 注 容器型資料型別 乙個資料裡面同時儲存多個資料 list2 注 列表可以為空,有...

後浪小萌新Python 多程序

多程序 需要其他程序的時候就建立程序類process的物件 注意 不能直接在乙個程序中修改另外乙個程序的資料 舉例 from multiprocessing import process import time data 10def download url global data data 1pr...