yiled in python
2015-07-09 22:08
791 查看
yiled 是个神奇的东西,但是他的基本概念好像还蛮简单的
小二,上代码:
结果是:
很明显,使用了yiled之后,即使调用了func(),程序也没有执行,而是只有在迭代输出的时候,才执行,即,函数返回了一个迭代器。
所有只讲语言特性是什么,却不说为什么的人,都是耍流氓,
那么,问题来了,为什么要这么设计:
1,减少内存损耗,如果不返回迭代器,那么可能返回的就是列表,那么,随着数据增大,内存的开销是惊人的。yiled不仅解决了这个问题,而且还让开发更加简洁
2,
小二,上代码:
def func(): for i in range(10): yield i*2 print("yaho~") func() print("????") for i in func(): print(i)
结果是:
???? 0 yaho~ 2 yaho~ 4 yaho~ 6 yaho~ 8 yaho~ 10 yaho~ 12 yaho~ 14 yaho~ 16 yaho~ 18 yaho~ [Finished in 0.2s]
很明显,使用了yiled之后,即使调用了func(),程序也没有执行,而是只有在迭代输出的时候,才执行,即,函数返回了一个迭代器。
所有只讲语言特性是什么,却不说为什么的人,都是耍流氓,
那么,问题来了,为什么要这么设计:
1,减少内存损耗,如果不返回迭代器,那么可能返回的就是列表,那么,随着数据增大,内存的开销是惊人的。yiled不仅解决了这个问题,而且还让开发更加简洁
2,
相关文章推荐
- Python项目四:新闻聚合
- python3.4连接WAMP中的MySQL数据库
- Windows下编译fast rcnn
- Python进阶二:模块和包
- adaBoost
- 寻找回文数的python的实现
- 用Python中的list分片方法解决约瑟夫环问题
- WinPython升级Pip
- 在Windows上安装Python
- 寻找所有的素数的python实现
- Duck Type in Python
- python中strip()函数的理解
- Beginning Python From Novice to Professional (4) - 演示样本格式字符串
- python 多线程的一点东西
- Python: The _imagingft C module is not installed错误的解决
- 将字符串转化为数字的python实现
- Python os.chmod()
- python基本环境配置
- cmd下不能运行python解决方法
- Python使用opencv