Python Yield语句

在Python中,可以使用yield语句定义生成器。通常,它将普通的Python函数转换为生成器。

yield语句挂起函数的执行并将值返回给函数调用者,然后从离开的地方重新开始执行。yield语句可以被多次调用。而return语句结束函数的执行并将值返回给调用者。没有return语句,函数将不返回任何值。在Python生成器中,yield函数用于替代return函数,以将值返回给用户而不破坏本地变量。

什么是生成器?

Python生成器用作生成迭代器的一种方法。生成器自动处理任务。生成器可以定义为返回生成器对象给调用者的特殊函数。

简而言之,生成器指的是返回可迭代的函数,我们可以对其进行迭代。在Python中,创建生成器非常容易,它使用yield语句而不是return语句。

示例1:

# Python Code for using yield statement   
def myfunction(a, b):  
aadd = a + b  
yield add  
sub = a - b  
yield sub  
mul = a * b  
yield mul  
div = a % b  
yield div  
# generator runs with for loop for getting all values  
for value in myfunction(49,45):  
print(value)  

输出:

94
4
2205
1.08

示例2:

# Python code for using the yield statement  
def printoutput(String) :   
    for i in String:   
        if i == "a":   
            yield i    
# string initialization  
String = "Tutorial and examples"   
ans = 0  
print ("The number of 'a' in the string is : ", end = "" )   
StringString = String.strip()     
for j in printoutput(String):   
    ansans = ans + 1    
print (ans)   

输出:

The number of 'a' in the string is : 3

Python Return语句

return语句通常用于结束执行并将值返回给调用者。return语句可以返回所有类型的值,当没有表达式传递给return语句时,它将返回None。函数中可以有多个return语句,但对于函数的任何特定调用,只会调用一个语句。

可以看到,在函数块的末尾放置了return语句,以返回函数内所有语句的执行的最终输出。还可以看到,在函数块中较早的位置放置了return语句,以停止函数内所有后续语句的执行。在调用者处,使用return语句可以快速重新启动程序的执行。如果没有指定值,它将返回None。

示例1:

# Python code for   
#demonstrating use of return statement  
def myfunc(a, b):  
    aadd = a + b  
    sub = a - b  
    mul = a * b  
    div = a % b  
    return(add, sub, mul, div)  
    # Getting return value and printing the output  
    output = myfunc(49,45)  
    print("Addition: ", output[0])  
    print("Subtraction: ", output[0])  
    print("Multiplication: ", output[0])  
    print("Division: ", output[0])  

输出:

Addition: 94
Subtraction: 4
Multiplication: 2205
Division: 1.08

示例2:

# Python code for   
#demonstrating use of return statement  
class check:    
    def __init__(self):    
        self.str = "Tutorial and examples"  
        self.x = "Kaushal"           
# Object of test will be returned by this function  
def fun():    
    return check()             
# Driver code for checking the above method  
t = fun()     
print(t.str)    
print(t.x)   

输出:

Tutorial and examples
Kaushal

yield和return语句之间的区别

Yield语句Return语句
Yield返回生成器对象。返回结果给调用者。
可以多次运行。仅运行一次。
可以在yield语句之后的下一个函数调用中执行代码。在return语句之后不会执行代码。
该语句可以从暂停或离开的地方继续。该语句只运行函数从头开始的函数调用。
yield语句挂起函数并将值返回给函数调用者。return语句从执行中退出并将值返回给调用者。

结论

在上述文章中,我们看到了return和yield语句的区别。此外,我们了解了这两种语句的概念,以及如何在Python程序中使用它们。

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程