壹.什麽是叠代器
叠代器是用來叠代取值的工具。
而涉及到把多個值循環取出來的類型有:列表,字符串,元組,字段,集合,打開文件等。通過使用的遍歷方式有for···in···,while等,但是,這些方式只適用於有索引的數據類型。為了解決索引取的局限性,python提供了壹種 不依賴於索引的取值方式:叠代器
註意:
二.可叠代對象
可叠代對象:但凡內置有__iter__方法的都稱為可叠代對象
常見的可叠代對象:
1.集合數據類型,如list,tuple,dict,set,str等
2.生成器,包括生成器和帶yield的生成器函數。
三.如何創建叠代器
叠代器是壹個包含數個值的對象。
叠代器是可以叠代的對象,這意味著您可以遍歷所有值。
從技術上講,在Python中,叠代器是實現叠代器協議的對象,該協議由方法 __iter__() 和 __next__() 組成。
簡而言之,壹個類裏面實現了__iter__()和__next__()這兩個魔法方法,那麽這個類的對象就是可叠代對象。
四.叠代器的優缺點
1.優點
2.缺點
五.叠代器示例
另外,如果類Stu繼承了Iterator,那麽Stu可以不用實現__iter__()方法
遍歷叠代器
StopIteration
如果妳有足夠的 next() 語句,或者在 for 循環中使用,則上面的例子將永遠進行下去。
為了防止叠代永遠進行,我們可以使用 StopIteration 語句。
在 __next__() 方法中,如果叠代完成指定的次數,我們可以添加壹個終止條件來引發錯誤