Python迭代器協(xié)議適用于以下情況:
my_list = [1, 2, 3, 4, 5]
for item in my_list:
print(item)
在這個(gè)例子中,my_list是一個(gè)列表,它實(shí)現(xiàn)了__iter__()方法,因此可以在for循環(huán)中使用。
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)
在這個(gè)例子中,MyRange類實(shí)現(xiàn)了一個(gè)簡單的迭代器,用于生成從start到end-1的整數(shù)序列。
import itertools
my_list = [1, 2, 3, 4, 5]
for item in itertools.islice(my_list, 2, 4):
print(item)
在這個(gè)例子中,itertools.islice()函數(shù)返回一個(gè)迭代器,用于獲取my_list中索引為2和3的元素。