迭代器协议:iter__和__next
python
class Counter:
def __init__(self, max):
self.max = max
self.n = 0
def __iter__(self):
return self
def __next__(self):
if self.n < self.max:
self.n += 1
return self.n
raise StopIteration
for i in Counter(5):
print(i) # 1, 2, 3, 4, 5iter()和next()
python
lst = [1, 2, 3]
it = iter(lst)
print(next(it)) # 1
print(next(it)) # 2练习:答案