随笔 - 14, 文章 - 0, 评论 - 0, 阅读 - 209

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

5.return与yield

Posted on   小熊_努力学习版  阅读(10)  评论(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

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示