「yield」是 Python 中的獨特關鍵字,它使您能夠建立產生器,它們是一種特殊的可迭代類型。可迭代物件表示可以迭代的值序列,例如列表和字串。然而,生成器與這些不同,它不將所有值儲存在記憶體中。相反,它們一次一個地動態生成值。
要理解生成器,從 iterables 開始會很有幫助。可迭代物件是實作 __iter__() 方法的對象,可讓您透過 iter() 函數檢索迭代器物件。迭代器實作 __next__() 方法,該方法傳回序列中的下一個項目,並在沒有剩餘項目時引發 StopIteration 異常。
產生器是使用「yield」關鍵字建立的迭代類型。生成器是獨一無二的,因為它們在每個「yield」語句處暫停執行,允許您一次檢索一個值。當您使用生成器時,它會從暫停的位置恢復執行,產生下一個值。此過程會持續到生成器耗盡其所有值,此時它會引發 StopIteration 異常。
要使用產生器,您需要建立一個產生器函數,其中包含一個或更多「產量」聲明。此函數傳回一個生成器對象,可以使用“for”循環對其進行迭代。
這是一個範例:
def generate_numbers(): for i in range(5): yield i
在此範例中,generate_numbers() 是一個產生器函數,它迭代從 0 到 4 的數字並產生每個值。若要使用此產生器,您可以使用「for」循環對其進行迭代:
for number in generate_numbers(): print(number)
此程式碼將列印從 0 到 4 的數字。
與傳統發電機相比,發電機具有多種優勢iterables:
「yield」是Python 中一個強大的關鍵字,它使您能夠創建生成器,這是一種獨特的可迭代類型,可以根據需要生成值。生成器具有記憶體效率、延遲求值和靈活性等優勢,使其成為各種程式設計場景中的寶貴工具。
以上是Python 的「yield」關鍵字有什麼作用以及如何使用生成器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!