Python迭代器协议适用于以下情况:
my_list = [1, 2, 3, 4, 5]
for item in my_list:
print(item)
在这个例子中,my_list是一个列表,它实现了__iter__()方法,因此可以在for循环中使用。
class MyRange:
def __init__(self, start, end):
self.start = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.start >= self.end:
raise StopIteration
else:
self.start += 1
return self.start - 1
for i in MyRange(0, 5):
print(i)
在这个例子中,MyRange类实现了一个简单的迭代器,用于生成从start到end-1的整数序列。
import itertools
my_list = [1, 2, 3, 4, 5]
for item in itertools.islice(my_list, 2, 4):
print(item)
在这个例子中,itertools.islice()函数返回一个迭代器,用于获取my_list中索引为2和3的元素。