请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

七月老师,可以这样解决迭代器一次性的问题吗?

在14-5课中,对类BookCollection,增加一个方法解决迭代器一次性问题。比如:reset.

def self.reset(self, cur=0):
	self.cur = cur

正在回答

3回答

7七月 2019-07-26 18:16:25

可否详细说明下?

0 回复 有任何疑惑可以回复我~
  • 提问者 慕少3205599 #1
    在BookCollection中,原来用变量self.cur 对迭代器进行计数,如果self.cur 大于等于 列表self.data 的长度,则会抛出异常;
    我的意思是:如果用方法对self.cur 重新赋值为0,那么下次仍然可以遍历这个迭代器,而不用创建新的对象,或者复制这个对象。
    回复 有任何疑惑可以回复我~ 2019-07-26 18:48:48
  • 7七月 回复 提问者 慕少3205599 #2
    这样做是可以的。
    回复 有任何疑惑可以回复我~ 2019-07-26 21:31:44
划过天空 2020-06-28 12:19:55

我也想到了这个问题,实际测试了一下,在抛出异常之后把计数器变量重置,迭代器就可以重复使用了。

if self.cur >= len(self.date):

            self.cur = 0

            raise StopIteration()


0 回复 有任何疑惑可以回复我~
IoTus3 2019-07-26 18:59:13

reset好像是重置方法的,等于是把它重置了一下再迭代。



0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信