2. 迭代器协议

什么是迭代器协议

迭代器协议需要满足如下两条:

能够使用for语句遍历的可迭代对象必须遵守迭代器协议。

迭代器协议示例

title = ('No1', 'No2', 'No3', 'No4')
primes = [2, 3, 5, 7]  # 质数

# 访问列表中的所有元素
# 1. 使用 for 语句遍历
# for x in primes:
#     print(x)
# else:
#     print('遍历结束')

# 2. 使用 迭代器遍历
it1 = iter(primes)
it2 = iter(title)
while True:
    try:
        x = next(it1)
        n = next(it2)
        print(n, x)
    except StopIteration:
        print('遍历结束!')
        break

上述列表 primes 是一个可迭代对象,它可以用 for 语句取值,也可以先用 iter(x) 函数返回迭代器,再用next(it) 函数向迭代去取值,知道引发 StopIteration 异常时,说明取值结束。