首页 > 编程语言 > 详细

python_yield生成器

时间:2016-08-05 13:45:24      阅读:249      评论:0      收藏:0      [点我收藏+]

1、先对比range 和 xrange 的区别

  >>> print range(10)

  [0123456789]

  >>> print xrange(10)

  xrange(10)

 

如上代码所示,range会在内存中创建所有指定的数字,而xrange不会立即创建,只有在迭代循环时,才去创建每个数组。

自定义生成器: 

def func(arg):
seed = 0
while True:
seed = seed +1
if seed > arg:
return
else:
yield seed

for i in func(10):
print i

结果:1、2、3、4、5、6、7、8、9、10

每到yield执行完,它会返回seed值,然后暂停执行,当再次循环调用它会从上次的暂停点再次执行至下次暂停或函数操作完成!


python_yield生成器

原文:http://www.cnblogs.com/fengzaoye/p/5740857.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!