python-函数-生成器-迭代器

生成器-generator:

1,生成器就是一个可迭代对象(Itrable)

2,实现的两种方法:

1)li = [1,2,3]

(for i in li)

2)函数中有yield:

def function_name():

  yield something

 

可迭代对象:

low:内部有__iter__方法

advance:如果类中包含有__iter__方法,则由这个类实例化的对象为可迭代对象。

 可迭代对象.__iter__ ()返回迭代器

迭代器-iterator:

满足2个条件:1,有__iter__方法,2,next方法;

生成器一定是迭代器,迭代器不一定是生成器;

for循环做的3件事: 1)调用可迭代对象的iter()方法得到迭代器对象(当for后面跟的是可迭代对象时才有这步操作,如果已经是迭代器则直接进行第二步),2)不断调用迭代器对象的next()方法;3)捕捉StopIteration

 

posted @ 2018-12-12 14:49  文二1234  阅读(140)  评论(0编辑  收藏  举报