可迭代对象,迭代器对象,for循环本质

发布时间 2023-08-08 22:26:35作者: ranbo145

可迭代对象

# 可迭代对象
#数据对象有__iter__方法的都称为可迭代对象
1.内置方法 通过加点的方式可以调用的方法
2.__iter__ 读作:双下 iter 对象
3.不可迭代对象:int ,float
4.可迭代对象:str , list , dict , tuple, set , f.__iter__文件对象
5.可迭代的含义
"""
迭代:每一次更新都依赖上一次的结果
可以理解为是否支持for循环
"""

迭代器对象

#迭代器对象
#是由可迭代对象调用__iter__方法产生的
1.迭代器对象判断依据为:是否有"__iter__和__next__方法"
2.迭代器对象的作用:提供了一种"不依赖索引取值的方式"
"正因为有迭代器的存在,我们的字典和集合才能够被for循环"
例:c="hello"
reu=c.__iter__() # 迭代器对象
print(reu.__next__()) # 通过next拿值
print(reu.__next__())
print(reu.__next__())
"其实就是for循环的本质"
3.
# 简写
iter() # __iter__()
next() # __next__()

for循环的本质理解

for循环常用格式:
for 变量名 in 可迭代对象
	循环体代码
"""
1.先将in后面的数据.__iter__ 转变为迭代器对象
2.依次让迭代器对象调用__next__取值
3.一旦__next__取不到值报错 for循环会自动处理
"""