.__iter__()
时间: 2023-09-04 15:12:18 浏览: 75
在 Python 中,如果一个类定义了 `__iter__` 方法,那么它的实例对象就可以被迭代。
`__iter__` 方法需要返回一个实现了 `__next__` 方法的迭代器对象。`__next__` 方法返回迭代器的下一个值,或者在没有更多值可供迭代时,抛出 `StopIteration` 异常。
下面是一个简单的示例,演示了如何在自定义类中实现迭代器:
```
class MyRange:
def __init__(self, start, end):
self.start = start
self.end = end
def __iter__(self):
self.current = self.start
return self
def __next__(self):
if self.current >= self.end:
raise StopIteration
else:
result = self.current
self.current += 1
return result
# 使用 MyRange 进行迭代
for i in MyRange(0, 5):
print(i)
```
在这个例子中,我们定义了一个名为 `MyRange` 的类,它实现了一个简单的迭代器,用于生成从 `start` 到 `end` 的整数序列。在 `__iter__` 方法中,我们将当前值 `self.current` 初始化为 `self.start`,并返回一个迭代器对象。在 `__next__` 方法中,我们检查当前值是否大于等于 `self.end`,如果是,则抛出 `StopIteration` 异常,否则返回当前值,并将 `self.current` 加 1。最后,我们可以使用 `MyRange` 进行迭代,输出结果为:
```
0
1
2
3
4
```
阅读全文