之前学 Python 生成器的时候,看到 yield 就懵了🤯
后来发现其实就是三点:
📌 生成器 = 懒人版迭代器
一次只产生一个值,不占内存
对比列表推导式:[x*x for x in range(1000000)] → 内存炸了
换成 (x*x for x in range(1000000)) → 丝滑如初✨
📌 yield 就是暂停键
普通函数 return 就结束了
生成器函数遇到 yield 就暂停,下次 next() 接着跑
省了一堆手动维护状态的代码👇
1. def fibonacci():
2. a, b = 0, 1
3. while True:
4. yield a
5. a, b = b, a + b
无限序列也不怕内存爆炸💥
📌 send() 还能往里传值
不只能一个一个取,还能往生成器里发数据
协程的核心原理就藏在这里👇
实测:处理 100w 条日志数据,生成器比列表少用 90% 内存 ✅
#Python #Python入门 #生成器 #编程干货 #测试开发 #自动化测试 #后端开发