>>> items = [1, 2, 3]
>>> # Get the iterator
>>> it = iter(items) # Invokes items.__iter__()
>>> # Run the iterator
>>> next(it) # Invokes it.__next__()
1
>>> next(it)
2
>>> next(it)
3
>>> next(it)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
>>>

反向迭代

class Countdown:
	def __init__(self, start):
		self.start = start
	# Forward iterator
	def __iter__(self):
		n = self.start
		while n > 0:
			yield n n -= 1
	# Reverse iterator
	def __reversed__(self):
		n = 1
		while n <= self.start:
			yield n n += 1
for rr in reversed(Countdown(30)):
	print(rr)
for rr in Countdown(30):
	print(rr)