Python面试题更新 2026-08-05

在 Python 中,生成器的定义是什么?它有哪些核心特征和使用场景?

技术原理Python

考察说明

考查对 Python 生成器概念、机制和典型应用的掌握。

回答思路

  1. 【回答框架 1】生成器是 Python 中一种特殊的迭代器,通过 yield 关键字实现,每次迭代时暂停并保存当前状态,下次从暂停处继续执行。
  2. 【回答框架 2】生成器的核心机制是惰性求值,即一次只生成一个值,不一次性把所有元素加载到内存,因此适合处理大数据集或无限序列。
  3. 【回答框架 3】生成器的定义方式有两种:生成器函数(包含 yield)和生成器表达式。生成器返回的是迭代器,可以用于 for 循环或 next() 函数。
  4. 【回答框架 4】生成器的典型应用场景包括流式读取大文件、生成无限序列(如斐波那契数列)、管道式数据处理等。
  5. 【回答框架 5】生成器与普通函数的区别在于,执行时不会立即返回结果,而是返回生成器对象,通过迭代逐步获取值。
  6. 【关键点 1】生成器通过 yield 实现状态保存和恢复。
  7. 【关键点 2】生成器是惰性求值的,节省内存。
  8. 【关键点 3】生成器表达式如 (x for x in range(10)) 创建生成器。
  9. 【关键点 4】生成器只能迭代一次。
  10. 【关键点 5】适用于大数据集和流式处理场景。
  11. 【易错点 1】不能混淆生成器与可迭代对象,生成器是迭代器的一种。
  12. 【易错点 2】生成器耗尽后不能重复使用,需重新创建。
  13. 【易错点 3】在生成器中使用 return 会停止迭代,但不会返回具体值。