Python PEP 234定义了Python中的迭代器协议,迭代器是一种对象,它可以在循环语句中被逐个访问
▥Python
𝄐 0
迭代器iterator python,python迭代器iter,python迭代器的__next__方法,python中迭代器,python迭代器详解,python迭代器的作用
Python PEP 234定义了Python中的迭代器协议,迭代器是一种对象,它可以在循环语句中被逐个访问。按照迭代器协议,迭代器必须实现两个方法:__iter__()和__next__()。
- __iter__() 方法返回迭代器对象本身。
- __next__() 方法返回迭代器中的下一个元素。如果没有更多的元素,则引发StopIteration异常。
下面是一个示例,其中使用迭代器来计算斐波那契数列:
python
class Fib:
def __init__(self, max):
self.max = max
def __iter__(self):
self.a = 0
self.b = 1
return self
def __next__(self):
fib = self.a
if fib > self.max:
raise StopIteration
self.a, self.b = self.b, self.a + self.b
return fib
fibonacci = Fib(100)
for num in fibonacci:
print(num)
在这个示例中,Fib类实现了迭代器协议并定义了__iter__() 和__next__()方法。当for循环遍历Fib类的实例时,会反复调用__next__()方法并打印出每个元素,直到超过指定的最大值为止。
Python PEP 234定义了Python中的迭代器协议,迭代器是一种对象,它可以在循环语句中被逐个访问。按照迭代器协议,迭代器必须实现两个方法:__iter__()和__next__()。
- __iter__() 方法返回迭代器对象本身。
- __next__() 方法返回迭代器中的下一个元素。如果没有更多的元素,则引发StopIteration异常。
下面是一个示例,其中使用迭代器来计算斐波那契数列:
python
class Fib:
def __init__(self, max):
self.max = max
def __iter__(self):
self.a = 0
self.b = 1
return self
def __next__(self):
fib = self.a
if fib > self.max:
raise StopIteration
self.a, self.b = self.b, self.a + self.b
return fib
fibonacci = Fib(100)
for num in fibonacci:
print(num)
在这个示例中,Fib类实现了迭代器协议并定义了__iter__() 和__next__()方法。当for循环遍历Fib类的实例时,会反复调用__next__()方法并打印出每个元素,直到超过指定的最大值为止。
本文地址:
/show-274474.html
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。