Python中的生成器函數是一種特殊的函數,可以用于迭代遍歷。生成器函數的作用是節省內存空間,生成器函數的結果是生成器對象,可以使用next()方法進行迭代遍歷。
def my_generator(): yield 1 yield 2 yield 3 g = my_generator() #創建生成器對象 print(next(g)) #1 print(next(g)) #2 print(next(g)) #3
可以看到,生成器函數每次迭代時只返回一個值,同時生成器函數只有在使用時才會被調用。在 Python3.x 中,可以使用 __next__() 方法來替代 next() 方法。
def my_generator(): yield 1 yield 2 yield 3 g = my_generator() print(g.__next__()) #1 print(g.__next__()) #2 print(g.__next__()) #3
我們還可以使用 for 循環來進行遍歷:
def my_generator(): yield 1 yield 2 yield 3 for i in my_generator(): print(i)
生成器函數的另一個常見用途是用于創建無限循環的迭代器。
def my_cycle(): while True: yield '1' yield '2' yield '3' for i in my_cycle(): print(i)
生成器函數是 Python 中一個非常有用的功能,可以省去大量的內存空間,同時可以使用簡單的方法來處理大量的數據。