1 iterable object
list、dict、set、tuple、file(在每行上iterate)等都是iterable object,但是它們不是iterator。但是它們可以轉換成iterator,通過兩種方式:
第一,顯式的使用iter()函式;
第二,隱式的使用for
2 iterator
iterator也是iterable的。
3 generator
3.1 種類
有兩種型別的generators
3.2 使用yield來返回的函式形式的generator
使用yield返回函式值的函式是generator,generator是一種特殊的iterator,因此以iterator作為引數的函式都可以使用generator。
3.3 使用generator comprehension形式的generator
即圓括號形式的generator comprehension本質是一個generator。
總結一下,
三者的關係如下:
generator是iterator,iterator是iterable object,所以,最大的是iterable object。