首 页 行业资讯 新车 试驾评测 养车用车 车型库

Python里面怎么给自己的类自定义迭代器方法

发布网友 发布时间:2022-04-22 15:17

我来回答

1个回答

热心网友 时间:2022-04-07 14:39

迭代器的用法在 Python 中普遍而且统一。在后台,for 语句在容器对象中调用 iter() 。 该函数返回一个定义了 next() 方法的迭代器对象,它在容器中逐一访问元素。没有后续的元素时,next() 抛出一个 StopIteration 异常通知 for 语句循环结束。 
了解了迭代器协议的后台机制,就可以很容易的给自己的类添加迭代器行为。定义一个 __iter__() 方法,使其返回一个带有 next() 方法的对象。如果这个类已经定义了 next(),那么 __iter__() 只需要返回self。 
以下是其工作原理的示例: 
Python代码 

class Reverse: 
"Iterator for looping over a sequence backwards" 
def __init__(self, data): 
self.data = data 
self.index = len(data) 
def __iter__(self): 
return self 
def next(self): 
if self.index == 0: 
raise StopIteration 
self.index = self.index - 1 
return self.data[self.index] 
Python代码 
for char in Reverse('spam'): 
print char

希望能帮到你!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com