摘要: 在函数内部使用yield定义,这个函数就是一个生成器函数。 调用生成器函数的时候会返回一个生成器对象。 生成器函数内部,使用yield可以产生数据。 生成器对象内还有一个方法send,send方法可以由外部向内部进行传值。 执行过程: 当执行gen=MyGenerator()会直接生成返回一个生成器 阅读全文
posted @ 2020-06-18 15:41 一日学一日功 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator函数, generator和函数的执行流程不一样。 函数是顺序执行,遇到return语句或者最后一行函数语句就返回。 而变成generator的函数,在每次调用next()的时候执行,遇到yield语 阅读全文
posted @ 2020-06-18 15:31 一日学一日功 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 上图的这些模式,都是以list对象和操作符[]来获取元素,而索引只是作为参数。这是一种迭代模式。 有没有一种模式,元素的提取只和下标打交道,而和可迭代对象无关。这样的一种设计模式,就是迭代器模式 for i in [1, 2, 3, 4]: print(i) for c in "python": p 阅读全文
posted @ 2020-06-18 15:19 一日学一日功 阅读(630) 评论(0) 推荐(0) 编辑