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__( ) 就没有值

           只能向前,不能反复

       

posted @ 2018-11-08 22:06  derboss  阅读(106)  评论(0编辑  收藏  举报