image

编辑人: 长安花落尽

calendar2025-05-31

message8

visits117

NewsDog Python开发工程师面试题

实现一个可迭代的类

class MyClass(object):

def __init__(self, n):

self.idx = 0

self.n = n

 

def __iter__(self):

return self

 

def next(self):

if self.idx < self.n:

val = self.idx

self.idx += 1

return val

else:

raise StopIteration

其实,可以作用于for循环的对象都是可迭代对象(Iterable),for循环就是使用next()函数实现的,但是next()函数中的参数必须是

迭代器(Iterator),对于list,tuple,dict,str等类型是可迭代的,却不是迭代器,它们的for循环实现是先用了iter()函数获得一个

Iterator对象。

迭代器是一个惰性计算序列,不断调用next()函数才计算下一个结果,并直到结尾时返回StopIteration异常。迭代器对象必须实现__iter__()和

next()方法。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:NewsDog Python开发工程师面试题

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share