Python 可迭代对象

迭代:

  第一次的更新,都依赖于上一次的结果

可迭代对象:

  内置有__iter__方法的都称之为可迭代对象

    内置:可能通过 点(.)的方式直接查看

    如list.__iter__

可变类型如list set dic tuple等都是可迭代对象

不可变类型如int float bool等不是可迭代对象

 

迭代器对象:

  即内置有__iter__方法,又内置有__next__方法的对象

生成迭代器对象:

  让可迭代对象,运行__iter__方法

  ***迭代器对象无论运行多少次__iter__方法,还是迭代器对象(本身)

  可变类型,是迭代器对象

  不可变类型,不是迭代器对象

如:

  s = 'jason'

  ress.__iter___()  #可迭代对象转为迭代器对象

  print(res.__next__()) #执行__next__方法,其实就是在迭代取值(for循环)

  print(res.__next__()) #每次取一个值

  print(res.__next__())

 

for 循环的本质:

  for循环,本质就是调用可迭代对象的__iter__方法转为迭代器对象,

    然后再依次调用__next__方法,当__next__调用完成后会报错,

    但是for自动处理报错信息,使其不显示出来

 

posted on 2021-11-27 11:04  秋不语  阅读(171)  评论(0)    收藏  举报

导航