擅长:python、mysql、java
<p>如果一个对象有一个<code>__next__</code>方法,那么它就是一个<a href="https://docs.python.org/3/library/stdtypes.html#typeiter" rel="nofollow noreferrer">iterator</a>,这个方法被调用来获取下一个项目(当它用完时应该引发<code>StopIteration</code>),而<code>__iter__</code>返回一个迭代器(通常只是<code>self</code>)</p>
<pre><code>class ReverseIter:
def __init__(self, sequence):
self.sequence = sequence
self.index = len(sequence)
def __iter__(self):
return self
def __next__(self):
if self.index > 0:
self.index -= 1
return self.sequence[self.index]
else:
raise StopIteration
</code></pre>