欢迎光临散文网 会员登陆 & 注册

Python for循环的真面目竟是while,如何让自己自定义的类实现for循环

2022-04-25 16:27 作者:乛ロ乛  | 我要投稿

首先从for循环开始,我们来看一对等效的代码

易得这段代码的运行结果为

再来看一段等效的代码

这段代码与上面这段代码等效,由此可知,如果需要让一个类可以迭代,就需要实现inter方法,并且这个被inter方法返回的对象要实现next方法,并在迭代完成所有元素后抛出一个异常。

分析完成后我们就可以自己实现一个能迭代的类了

现在我们有一个Student类

现在我想通过for循环获取Student实例的idname,就要先实现inter方法

这里偷懒了就直接把Student本身作为迭代器,因此Student需要实现next方法

但是如果现在去用for循环迭代Student实例会发现一直返回none

所以需要在迭代结束时抛出一个停止迭代的异常

于是最终代码为

输出为


Python for循环的真面目竟是while,如何让自己自定义的类实现for循环的评论 (共 条)

分享到微博请遵守国家法律