python中__iter__函数
时间: 2023-08-20 08:09:29 浏览: 54
在Python中,`__iter__`是一个特殊方法,用于定义一个可迭代对象。可迭代对象是指能够被迭代(例如使用`for`循环)的对象。
`__iter__`方法在一个类中被实现时,需要返回一个迭代器对象。迭代器对象是用于实现迭代的对象,它必须包含`__next__`方法,该方法用于返回迭代的下一个元素。如果没有更多的元素可供迭代,`__next__`方法应该引发`StopIteration`异常。
下面是一个简单的示例,展示了如何在类中实现`__iter__`方法:
```python
class MyIterator:
def __init__(self, limit):
self.limit = limit
self.current = 0
def __iter__(self):
return self
def __next__(self):
if self.current < self.limit:
value = self.current
self.current += 1
return value
else:
raise StopIteration
my_iter = MyIterator(5)
for num in my_iter:
print(num)
```
在上面的示例中,`MyIterator`类实现了`__iter__`和`__next__`方法。`__iter__`方法返回迭代器对象自身,而`__next__`方法定义了迭代的逻辑。当使用`for`循环迭代`my_iter`对象时,会依次打印出0到4这五个数字。当没有更多的元素可以迭代时,`StopIteration`异常会被引发,结束迭代过程。
值得注意的是,Python还提供了更简洁的迭代器实现方式,使用生成器函数(使用`yield`关键字)可以更方便地创建迭代器。