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自动处理报错信息,使其不显示出来
浙公网安备 33010602011771号