1. 程式人生 > >day 12 函式生成器

day 12 函式生成器

一 . 1.迭代器 :  __iter__( )       __next__( )

       生成器 :本質就是迭代器,兩種方式寫生成器 (1)生成器函式   (2)生成器表示式

      2.生成器函式:函式內部由yield. yield返回 - >return  ,yield可以把函式分段執行,生成器函式被呼叫的時候,返回生成器。

      def func ( ):

            yield

      g = func ( )  ---得到生成器

        生成器的用法和迭代器基本一致,__next__( )開始執行生成器,執行到yield.知道沒有yield,丟擲StopIteration

      send ( ) 可以給上一個yield傳值

        (1)省記憶體     (2)惰性機制,不訪問 __next__( )就沒有值    (3)只能向前,不能反覆

二 . 各種推導式

       1.列表推導式  [ 結果 for 迴圈 if 判斷

       2.字典推導式 { key : value for迴圈  if 判斷 }

       3.集合推導式 { key for 迴圈  if 判斷}

三 . 生成器表示式(難點)

        ( 結果 for 迴圈  if 判斷)

           惰性機制  ,不訪問__next__( ) 就沒有值

           只能向前,不能反覆