python 3-4如何进行反向迭代以及如何实现反向迭代

利用生成器做了一个浮点的步进器,reversed()调用的是内部的reversed方法

 class FloatRange:
    def __init__(self, start, end, step=0.1):
        self.start = start
        self.end = end
        self.step = step

    def __iter__(self):
        value = self.start
        while value <= self.end:
            yield value
            value += self.step

    def __reversed__(self):
        value = self.end
        while value >= self.start:
            yield value
            value -= self.step

print("顺序:")

for x in FloatRange(1.0, 4.0, 0.5):
    print(x)

print("\n倒序:")

for x in reversed(FloatRange(1.0, 4.0, 0.5)):
    print(x)