if __name__ == "__main__": a = [1, 2, 3, 4] # python自带的reversed函数搞定了反向迭代,其本质时调用了__reversed__方法 for i in reversed(a): print(i) for i in a.__reversed__(): print(i) # 如果想要实现类的反向迭代,可以在实现__iter__()方法的同时搞一个__reversed__()方法 class Countdown: def __init__(self, start): self.start = start def __iter__(self): n = self.start while n > 1: yield n n -= 1 def __reversed__(self): n = 1 while n <= self.start: yield n n += 1 a = Countdown(10) for i in reversed(a): print(i)