網頁

2020年2月25日 星期二

Python iterator and generator

要成為迭代器,首先必須建立一個 __iter__ method告訴編譯器說這個類別是一個迭代器,每次進行迭代時都會呼叫這個method,然後回傳給自己(self)。接著還要建立一個__next__ method好讓外部可以透過內建函式next()去告訴迭代器說要產生下一個元素。


產生器可以透過函式利用yield指令或者tuple的comprehension來產生一系列數字,透過in或者next()可以把產生器裡面的元素產生出來


結論是產生器只能一次產生所有元素,比較適合存放容量小的元素,迭代器可以不斷產生元素,比較適合產生大量的元素

最後無聊寫了一個綜合版本




參考
https://anandology.com/python-practice-book/iterators.html

沒有留言:

張貼留言