python 面试常见问题(一)---yield

1. yield 的基本概念

用于定义生成器函数,与普通函数不同,yield函数返回的是是一个生成器对象,而非结果。

2、yield 与return的区别

  1. 执行方式:return 立即终止函数,yield 暂停函数
  2. 内存使用:return 返回完整结果,yield 逐个生成
  3. 状态保存:return 不保存状态,yield 保存函数状态
  4. 返回值:return 返回指定值,yield 返回生成器对象

3、样例

python 复制代码
def simple_generator():
    yield 1
    yield 2
    yield 3

# 使用生成器
gen = simple_generator()
print(next(gen))  # 输出: 1
print(next(gen))  # 输出: 2
print(next(gen))  # 输出: 3