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