當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Yield和Return的區別用法及代碼示例


Python產量
它通常用於將常規 Python 函數轉換為生成器。生成器是 Python 中的一個特殊函數,它將生成器對象返回給調用者。由於它存儲局部變量狀態,因此可以控製內存分配的開銷。

例子:


# Python3 code to demonstrate yield keyword  
  
# Use of yield 
def printresult(String) :  
    for i in String:  
        if i == "e":  
            yield i  
  
# initializing string  
String = "GeeksforGeeks" 
ans = 0
print ("The number of 'e' in word is : ", end = "" )  
String = String.strip()  
  
for j in printresult(String):  
    ans = ans + 1
  
print (ans)  

輸出:

The number of 'e' in word is : 4

Python返回
它通常用於執行結束以及“returns”將結果發送給調用者語句。它可以返回所有類型的值,當語句“return”沒有表達式時,它返回None。

例子:


# A Python program to show return statement  
class Test:   
    def __init__(self):   
        self.str = "GeeksForGeeks"
        self.x = "Shubham Singh"   
      
# This function returns an object of Test   
def fun():   
    return Test()   
          
# Driver code to test above method   
t = fun()    
print(t.str)   
print(t.x)  

輸出:

GeeksForGeeks
Shubham Singh

Python 產量和返回之間的區別

序列號 YIELD RETURN
1 Yield 通常用於將常規 Python 函數轉換為生成器。 Return 一般用於執行結束以及“returns”將結果返回給調用者語句。
2 它取代函數的返返回暫停其執行而不破壞局部變量。 它退出函數並將值返回給調用者。
3 當生成器將中間結果返回給調用者時使用它。 當函數準備好發送值時使用它。
4 在yield語句之後編寫的代碼將在下一個函數調用中執行。 while,return語句之後編寫的代碼將不會執行。
5 它可以運行多次。 它隻運行一次。
6 Yield 語句函數從函數暫停的最後一個狀態開始執行。 每個函數調用都從頭開始運行該函數。


相關用法


注:本文由純淨天空篩選整理自SHUBHAMSINGH10大神的英文原創作品 Difference between Yield and Return in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。