python - 迭代器(迭代协议/可迭代对象)

迭代器

# 迭代器协议
# 迭代协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就触发一个 StopIteration 异常,以终止迭代(只能往后走不能往前退)
# 可迭代对象:实现了迭代器协议的对象(对象内部定义可一个__iter__()方法)
# 完整的迭代器 = 迭代协议(__next__)  + 迭代对象(__iter__)

# 示例:
class Test():
    def __init__(self,num):
        self.num = num
    def __iter__(self):
        return self
    def __next__(self):
        if self.num == 100:
            raise StopIteration("大于100终止迭代....")
        self.num += 1
        return self.num

x = Test(10)
#利用next函数或者class内置__next__方法调用
print(next(x))
print(x.__next__())

#用for循环的方式访问迭代器
for i in x:
    print(i)

 

posted @ 2018-10-14 22:55  Anec  阅读(387)  评论(0编辑  收藏  举报