在Python中,要让一个类的实例对象可迭代,你需要在类中实现 `__iter__` 和 `__next__` 方法。`__iter__` 方法返回一个迭代器对象,而 `__next__` 方法返回容器中的下一个值。当没有更多元素时,`__next__` 应该抛出 `StopIteration` 异常来结束迭代。
下面是一个简单的例子,展示如何实现一个可迭代类,该类可以输出指定范围内的奇数:
class OddNumber:def __init__(self, end, start=1):self.max_num = endself.start = startself.first = Truedef __iter__(self):return selfdef __next__(self):if self.first:self.first = Falseif self.start % 2 == 0:self.start += 1return self.startelse:if self.start < self.max_num:self.start += 2return self.startelse:raise StopIteration使用示例odd_numbers = OddNumber(10)for number in odd_numbers:print(number)
输出:
13579
这个 `OddNumber` 类定义了一个可迭代对象,可以遍历从 `start` 到 `end`(不包括 `end`)之间的所有奇数。

