Python 中可以使用生成器建立迭代器嗎?
是的,我們可以在 Python 中使用迭代器建立生成器。建立迭代器很容易,我們可以使用關鍵字 `yield` 語句來建立生成器。
Python 生成器是一種建立迭代器簡單易用的方法,主要用於宣告一個像迭代器一樣工作的函式。
生成器是一個函式,我們可以一次迭代一個值,在日常生活中,每個程式設計師都會使用可迭代物件,例如列表、字串和字典等。
迭代器是一個可以透過迴圈迭代的物件。
下面的例子顯示了生成器在 Python 中引入了 `Yield` 語句,它的作用類似於返回值。
示例
def generator(): print("program working sucessfully") yield 'x' yield 'y' yield 'z' generator()
輸出
<generator object generator at 0x000000CF81D07390>
也可以使用 for 迴圈建立生成器
示例
for i in generator(): print(i)
輸出
program working sucessfully x y z
迭代器物件支援兩種方法:1. **__iter__ 方法** 和 2. **__next__ 方法**
__iter__ 方法返回迭代器物件本身。主要用於迴圈和 in 語句。
__next__ 方法返回迭代器中的下一個值,如果沒有更多項返回,則應引發 StopIteration 異常。
示例
class function(object): def __init__(self, lowtemp, hightemp): self.current = lowtemp self.high = hightemp def __iter__(self): 'Returns itself as an iterator object' return self def __next__(self): 'Returns the next value till current is lower than high' if self.current > self.high: raise StopIteration else: self.current += 1 return self.current - 1 c = function(3,20) for i in c: print(i, end=' ')
輸出
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
廣告