iter() 函数用来生成迭代器。
iter(object[, sentinel])
object -- 支持迭代的集合对象。
sentinel -- 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object。
迭代器对象。
list = ['one', 'two', 'three', 'four']
for i in iter(list):
print(i,end=' ') # one two three four
class TestIter(object):
def __init__(self):
self.l = [1, 2, 3, 4, 5]
self.i = iter(self.l)
def __call__(self): # 定义了__call__方法的类的实例是可调用的
item = next(self.i)
return item
def __iter__(self): # 支持迭代协议(即定义有__iter__()函数)
print("__iter__ is called!!")
return iter(self.l)
t = TestIter() # t是可调用的
t1 = iter(t, 4) # t必须是callable的,否则无法返回callable_iterator
for i in t1:
print(i,end=' ') # 1 2 3免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理