导航

5.return与yield

Posted on 2025-01-30 17:17  小熊_努力学习版  阅读(87)  评论(0)    收藏  举报

returnyield 是 Python 中用于函数返回值的关键字,但它们的行为和用途有显著区别。

1. return

  • 作用: return 用于从函数中返回一个值,并终止函数的执行。
  • 特点:
    • 函数执行到 return 语句时,会立即退出,并将 return 后面的值作为函数的返回值。
    • 函数调用结束后,局部变量会被销毁。
    • 每次调用函数时,都会从头开始执行。

示例:

def simple_function():
    return 1
    return 2  # 这行不会执行

result = simple_function()
print(result)  # 输出: 1

2. yield

  • 作用: yield 用于生成器函数中,生成一个值并暂停函数的执行,保留函数的状态,下次调用时从暂停处继续执行。
  • 特点:
    • 使用 yield 的函数称为生成器函数,调用时返回一个生成器对象。
    • 生成器函数执行到 yield 时,会返回 yield 后面的值,并暂停执行,保留局部变量的状态。
    • 下次调用生成器的 __next__() 方法时,函数会从上次暂停的地方继续执行。
    • 生成器函数可以多次 yield 值,直到函数结束或遇到 return

示例:

def generator_function():
    yield 1
    yield 2
    yield 3

gen = generator_function()
print(next(gen))  # 输出: 1
print(next(gen))  # 输出: 2
print(next(gen))  # 输出: 3

3. 主要区别

特性 return yield
返回值 返回一个值并终止函数 生成一个值并暂停函数
函数状态 函数执行结束,局部变量销毁 函数状态保留,下次继续执行
调用方式 直接调用函数 通过生成器对象调用 __next__()
适用场景 普通函数 生成器函数,用于迭代或延迟计算

4. 总结

  • return 用于普通函数,返回一个值并结束函数执行。
  • yield 用于生成器函数,生成一个值并暂停函数,保留状态以便下次继续执行。

根据具体需求选择使用 returnyield