Python中Yield和Return的区别?

Python中Yield和Return的区别?

什么是Yield和Return?

在Python中,Yield和Return都是函数的关键字,用于函数返回值的生成。Yield关键字可以让一个普通函数变成生成器(generator)函数,而Return关键字则是普通函数的返回值。

Yield和Return的区别

Yield用于生成器函数中,表示将一个返回值生成为一个序列,可以是列表、元组或者是字符串等。

Return用于普通函数中,表示函数执行完毕,返回一个值或者None。

简言之,Yield是生成器函数中的关键字,用于生成一个序列并将其返回,而Return则是普通函数中的关键字,表示函数执行完毕并且返回一个值。

Yield和Return的示例代码

# 生成器函数示例代码
def fibonacci(n):
    a, b = 0, 1
    while a < n:
        yield a
        a, b = b, a+b

# 调用生成器函数并输出结果
for i in fibonacci(50):
    print(i,end= " ")

代码解释:这是一个生成斐波那契数列的函数,通过Yield关键字将计算结果返回并生成序列,最后通过for循环输出结果。

# 普通函数示例代码
def add_num(num1,num2):
    result = num1 + num2
    return result

# 调用函数并输出结果
print(add_num(3,5))

代码解释:这是一个加法函数,通过Return关键字返回计算结果并输出。

Yield和Return的相似之处

当函数中出现Yield关键字时,函数会被自动转换为生成器对象,可以使用next()函数逐个输出生成器的值,而Return则是直接返回一个值或者None,这一点和生成器函数都不同。

生成器函数和普通函数都可以传递参数,区别在于生成器函数中传递参数之后不会立即执行,如果要执行需要使用next()或者for循环来输出结果。普通函数则是在传递参数后立即执行并返回结果。

以上是Yield和Return的区别与相似之处,需要注意的是,在使用Yield关键字时,函数并不会完全执行完毕,而是在每次调用next()函数时从上次离开的地方继续执行,直到执行完毕。

结论

Yield和Return虽然都是Python函数中的关键字,但是它们的作用完全不同。Yield用于将计算结果生成为一个序列,而Return则是直接返回一个值。在使用Yield时,可以将一个普通函数变为生成器函数,使用next()或者for循环输出返回值。在使用Return时则不需要考虑这些问题,直接返回即可。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Python 示例