目录
生成器
传统列表 vs 生成器对比
yield机制深度解析
生成器的高级用法
协程的演进:从yield到async/await
基于yield的协程
现代async/await语法
协程的错误处理和超时控制
异步生成器与异步迭代器
异步生成器
异步迭代器实现
实战案例:异步爬虫框架设计
生成器
生成器是一种特殊的迭代器,它可以在需要时才产生值,而不是一次性将所有值加载到内存中。
传统列表 vs 生成器对比
def memory_comparison():import sys# 列表推导式 - 占用大量内存list_comp = [x**2 for x in range(1000000)]print(f"列表占用内存: {sys.getsizeof(list_comp)} bytes")# 生成器表达式 - 内存友好gen_exp = (x**2 for x in range(1000000))print(f"生成器占用内存: {sys.getsizeof(gen_exp)} bytes")return list_comp, gen_exp# 运行对比
lis