迭代、可迭代对象、迭代器

迭代的概念:

    迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“代”,而每一次迭代得到的结果会作为  下一次迭代的初始值。

 

可迭代对象:

    可以被for循环遍历获取的对象为可迭代对象

    具备__iter__方法的对象为可迭代对象

 

可迭代对象的判断:

  isinstance :提供判断某个对象是否属于某个类,如果属于返回True,如果不属于返回False

  for循环来判断

  如果对象中具备__iter__方法的话,就是可迭代对象

自定义类生成实例对象演示:

    

 

 

具备__iter__方法的类:

    

 

 

iter()函数和__next__()函数:

  iter()函数:可以获取可迭代对象的迭代器

    调用iter函数会触发__iter__魔法方法

  next()函数:对一个可迭代对象的迭代器调用该方法,可以返回该对象的下一条数据。

    调用next函数会触发__next__魔法方法

__iter__方法返回迭代器:

    

 

 迭代器的概念:

    具备了__iter__方法

    具备了__next__方法

代码实现:

  

 

   

 

 

迭代协议:

   1.在任何可迭代对象传入到for循环或者其他循环工具中进行遍历时,迭代工具都是先通过iter()函数获得与可迭代对象对应的迭代器。

   2.然后在对迭代器调用next函数,不断的依次获取元素 3.并在捕获到StopIteration异常时确定完成迭代,这就是完整的迭代过程,称之为"迭代协议"

  

 

  

posted @ 2020-12-17 08:47  叁年py  阅读(166)  评论(0)    收藏  举报