✨ 什么是生成器?

生成器是Python中一种轻量级的迭代器实现方式,通过yield关键字实现惰性计算,能高效处理大数据集
💡 生成器本质是可暂停执行的函数,每次调用yield会返回一个值并暂停状态,下次调用时从上次暂停处继续

🧩 生成器的使用方法

  • 定义生成器函数
    def simple_generator():
        yield 1
        yield 2
        yield 3
    
  • 使用生成器表达式
    (x**2 for x in range(10))
    
  • 生成器的迭代操作
    for value in simple_generator():
        print(value)
    

📌 生成器核心特性

  • 🔄 自动实现迭代器协议(__iter____next__方法)
  • 🧠 内存友好:按需生成数据,无需一次性加载完整数据集
  • 📈 比普通函数更节省资源,适合处理大数据量的场景

📚 示例:斐波那契数列生成器

def fibonacci(n):
    a, b = 0, 1
    while a < n:
        yield a
        a, b = b, a+b

for num in fibonacci(100):
    print(num)
Generator_Concept

⚡ 生成器 vs 迭代器

特性 生成器 迭代器
实现方式 使用yield关键字 实现__iter____next__方法
内存占用 更低 通常较高
可读性 更简洁 较复杂
Generator_vs_Iterator

🌐 应用场景

  • 📈 处理大数据量文件读取时,逐行生成数据
  • 🧠 实现惰性计算(如无限序列生成)
  • 📦 在网络数据流中按需处理数据包
  • 🧩 作为可迭代对象的简化实现

🧪 实战演练建议

  1. 尝试用生成器实现阶乘计算
  2. 比较生成器与列表推导式的内存占用差异
  3. 探索生成器在爬虫数据处理中的应用场景
  4. 研究生成器与async/await异步协作

想要深入了解生成器进阶用法?请查看我们的Python迭代器专题