python中的__iter__方法
时间: 2023-07-21 18:59:52 浏览: 58
__iter__方法是一个特殊的方法,用于定义一个对象的迭代行为。当一个对象被迭代时,Python会调用该对象的__iter__方法,该方法必须返回一个迭代器对象。
迭代器对象是包含了__next__方法的对象,该方法返回迭代的下一个值。当迭代器没有更多的值可供返回时,它应该引发StopIteration异常。
下面是一个示例,展示如何在类中实现__iter__方法:
```python
class MyIterator:
def __init__(self, start, end):
self.current = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.current > self.end:
raise StopIteration
else:
self.current += 1
return self.current - 1
# 创建一个迭代器对象
my_iter = MyIterator(1, 5)
# 使用for循环迭代对象
for num in my_iter:
print(num)
```
在上面的示例中,MyIterator类实现了__iter__方法和__next__方法。__iter__方法返回迭代器对象自身,而__next__方法定义了迭代的行为。当使用for循环迭代my_iter对象时,会依次输出1、2、3、4、5。
需要注意的是,__iter__方法可以返回任何实现了__next__方法的对象,不一定要返回自身。这使得我们可以在迭代过程中使用不同的逻辑来生成值。