python中的__iter__方法
时间: 2023-07-21 08:59:53 浏览: 53
`__iter__` 方法是 Python 中的一个特殊方法,用于定义一个可迭代对象(iterable)的迭代行为。当我们使用 `for` 循环遍历一个对象时,实际上是调用了该对象的 `__iter__` 方法来获取一个迭代器(iterator),然后使用迭代器进行遍历。
`__iter__` 方法需要返回一个迭代器对象,该对象必须实现 `__next__` 方法,用于返回下一个元素。如果迭代结束,需要抛出 `StopIteration` 异常。
下面是一个简单的示例代码,展示了如何在自定义类中实现 `__iter__` 方法:
```python
class MyIterable:
def __init__(self, data):
self.data = data
def __iter__(self):
self.index = 0
return self
def __next__(self):
if self.index >= len(self.data):
raise StopIteration
value = self.data[self.index]
self.index += 1
return value
```
我们可以这样使用 `MyIterable` 类:
```python
my_list = MyIterable([1, 2, 3, 4, 5])
for item in my_list:
print(item)
```
输出结果为:
```
1
2
3
4
5
```
在这个示例中,我们定义了一个 `MyIterable` 类,它包含了一个列表作为数据。通过实现 `__iter__` 方法,我们将这个类变成了一个可迭代对象。在每次迭代时,通过 `__next__` 方法返回列表中的下一个元素,直到迭代结束。