首页 > 其他 > 详细

iter 函数另类用法

时间:2014-03-20 01:34:29      阅读:539      评论:0      收藏:0      [点我收藏+]

它可以很简单地构造一个无限迭代器:

bubuko.com,布布扣
for i in iter(int, 1):
    print(i)

#将无限打印出0
bubuko.com,布布扣

原来,如果iter有第二个参数,那么第一个参数必须是一个参数可以省略的可调用对象.int函数符合这种要求.

迭代什么时候停止呢?当int()==1的时候就停止.显然这是不可能的,所以就无限迭代了.

 

官方文档定义:

iter(object[, sentinel])

Return an iterator object. The first argument is interpreted very differently depending on the presence of the second argument. Without a second argument, object must be a collection object which supports the iteration protocol (the __iter__() method), or it must support the sequence protocol (the __getitem__() method with integer arguments starting at 0). If it does not support either of those protocols, TypeError is raised. If the second argument, sentinel, is given, then object must be a callable object. The iterator created in this case will call object with no arguments for each call to its __next__() method; if the value returned is equal to sentinel, StopIteration will be raised, otherwise the value will be returned.

iter 函数另类用法,布布扣,bubuko.com

iter 函数另类用法

原文:http://www.cnblogs.com/xiangnan/p/3612550.html

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