python 迭代器
时间: 2023-11-07 13:05:54 浏览: 104
迭代器是Python中的一个重要概念,它是一种对象,可以按照一定的顺序逐个访问容器对象中的元素,而不需要提前知道容器的大小。迭代器具有两个必要的方法:__iter__和__next__。__iter__方法返回迭代器对象自身,而__next__方法返回容器中的下一个元素。当迭代器没有元素可供访问时,会抛出StopIteration异常来结束迭代。
在Python中,一个类只要实现了__iter__和__next__方法,就可以被称为迭代器。__iter__方法返回一个特殊的迭代器对象,而这个迭代器对象自动实现了__next__方法,并返回一个值。当迭代器没有更多的值可供访问时,会抛出StopIteration异常。
下面是一个示例代码,演示了如何定义一个迭代器类:
```python
class Fibonacci(object):
"""斐波那契数列的迭代器"""
def __init__(self, nums):
self.nums = nums # 传入参数,生成斐波那契数列的个数
self.a = 0
self.b = 1
self.i = 0 # 用于记忆生成的个数
def __iter__(self):
return self
def __next__(self):
ret = self.a # 记忆第一个数
if self.i < self.nums:
self.a, self.b = self.b, self.a + self.b
self.i += 1
return ret
else:
raise StopIteration # 停止迭代
nums = int(input("请输入需要生成Fibonacci数列项的个数:"))
fibo = Fibonacci(nums)
for num in fibo:
print(num)
```
阅读全文