生成器、惰性执行与数据流水线
面向对象与高级 Python#Python全栈#第三阶段#面向对象与高级 Python#生成器、惰性执行与数据流水线约 532 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
含 yield 的函数与普通函数有什么不同?
追问 调用函数后立即执行函数体,还是返回生成器对象?如何验证?
yield 与 return 的作用有什么区别?
追问 暂停、继续执行与结束生成器分别如何影响调用者?
生成器恢复执行时,会保留哪些状态?
追问 局部变量、循环位置和对象引用为什么会影响后续结果与资源占用?
列表推导式与生成器表达式如何选择?
追问 是否需要重复遍历、随机访问、即时计算和结果缓存如何影响选择?
生成器一定比列表更快或完全不占内存吗?
追问 保留的输入、局部状态、单个对象大小与消费方式如何影响实际开销?
生成器内部出错时,异常在创建阶段还是消费阶段暴露?
追问 应在哪一层捕获,才能覆盖真正执行数据处理的过程?
如何利用生成器组织“读取记录 → 校验 → 转换 → 汇总”?
追问 坏记录是跳过、记录还是终止?如何让最终消费方知道失败情况?
yield from 与普通 for 循环逐个 yield 有什么联系?
追问 基本的数据委托如何表达?进阶的返回值与生成器通信有哪些额外语义?
如何控制无限生成器的消费范围?
追问 停止条件、截取数量和消费者提前退出分别如何设计?
生成器被提前停止消费时,如何管理它占用的资源?
追问 仅执行 break 是否保证 finally 立即运行?明确关闭与上下文管理如何协作?