Python(3) yield
2017-01-09 11:42
344 查看
详细分析请移步这里
下附测试代码和结果
计算机初始状态
![](https://img-blog.csdn.net/20170109113356548?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1pIZXJtaXQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
利用list进行迭代
![](https://img-blog.csdn.net/20170109113146734?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1pIZXJtaXQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
从htop中可以看出内存占用一下子暴涨很多
利用yield进行迭代
![](https://img-blog.csdn.net/20170109113651824?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1pIZXJtaXQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
内存的占用变化处于正常范围
下附测试代码和结果
计算机初始状态
利用list进行迭代
def fabbylist(max): n, a, b = 0, 0, 1 list = [] while n < max: list.append(b) a, b = b, a + b n = n + 1 return list if __name__ == "__main__": max = 1e9 for i in fabbylist(max): print i
从htop中可以看出内存占用一下子暴涨很多
利用yield进行迭代
def fabbyyield(max): n, a, b = 0, 0, 1 while n < max: yield b a, b = b, a + b n = n + 1 if __name__ == "__main__": max = 1e9 for i in fabbyyield(max): print i
内存的占用变化处于正常范围
相关文章推荐
- python 之 yield
- Python天天美味(25) - 深入理解yield
- Python中的yield
- Python yield 用法
- python 之 yield
- 对Python中yield的理解
- python yield用法
- Python Generators(生成器)——yield关键字
- Python 生成器 yield
- python generator / yield statement
- 关于Python中的yield
- Python的yield关键字
- python学习笔记之yield
- python语法31[iterator和generator+yield]
- Python 深入理解yield
- 尝试解释Python中的yield
- Python中的yield
- python 中的yield
- python中的yield
- Python Yield versus Return