你实现了一个错误的__iter__方法,它应该返回一个迭代器对象而不是调用__next__。
其次,你在实现__next__时使用了yield关键字,这意味着它实际上是一个生成器函数,而不是__next__方法的正确实现。
next直接返回值就行,不用实现iter
【 在 poggy 的大作中提到: 】
:
: 下面能够实现循环, 但是, 有个小问题, 就是循环完毕, 按照规范__next__ 应该抛出StopIteration
: 但奇怪的是for in 并没有对这个异常做处理, 而是继续抛出来了, 是这个异常不对吗?
: 如果, 去掉这个raise, 只是简单返回好像就不出错了。
:
#发自zSMTH@CDU.MP
--
FROM 171.120.158.*