簡介
生成器是Python 中一個強大的功能,常常讓新手感到困惑。透過更深入地了解生成器,本文旨在闡明它們的複雜性。
產生器:Java 類比
在 Java 中,執行緒處理「生產者/消費者」場景。類似地,Python 生成器以生產者-消費者模式促進資料流。
什麼是生成器?
生成器是一個迭代生成值的函數。它會傳回一個迭代器對象,您可以在該對像上呼叫 next 直到引發 StopIteration 異常,表示值結束。函數始終從上次屈服後停止的位置開始。
為什麼要使用生成器?
生成器語法
yield 關鍵字將函數轉換為產生器。
def myGen(): yield 1 yield 2
使用範例
# For loop for num in myGen(): print(num) # Using next g = myGen() print(next(g)) print(next(g))
產生器運算式
類似列表推導式、產生器表達式
g = (x for x in range(10))
類似列表推導式、產生器表達式提供了一種緊湊的方式來定義生成器:
將資料傳回生成器
雖然生成器通常會產生值,但它們也可以透過send 方法接收資料。然而,一旦理解了基礎知識,就最好探索這個高階概念。
結論
產生器具有許多優點,包括簡潔的程式碼、記憶體效率和處理能力無限的資料流。透過了解它們的屬性,程式設計師可以在各種應用程式中有效地利用它們。以上是Python 生成器如何運作以及它們為何有用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!