for循环的背后:确保in后边为可迭代对象
Paste_Image.png
可迭代对象可以由内置函数iter得到一个迭代器对象
注意:可迭代和迭代器对象概念区别,不要混淆
Paste_Image.png
由可迭代得到迭代器,而数字不是可迭代对象,所以抛出异常
Paste_Image.png
可迭代对象接口:
判断可迭代,查询__方法,内部调用iter()方法,为标准可迭代的接口
对于字符串,如果没有标准可迭代接口,如果存在getitem,做为替代,对象也是可迭代的
迭代器对象接口:
只有next
Paste_Image.png
结论,for循环的工作原理:
for循环语句先调用iter方法,产生迭代器,再一直调用next,直到抛出异常则结束
网友评论