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