return
和 yield
是 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
用于生成器函数,生成一个值并暂停函数,保留状态以便下次继续执行。
根据具体需求选择使用 return
或 yield
。
合集:
python基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统