问题描述
我运行这样的代码:
class MyNumber:
def __iter__(self):
self.it=1
return self
def __next__(self):
b=self.it
self.b+=1
return b
num=MyNumber()
it=iter(num)
print(next(it))
File "test2.py",line 14,in <module>
print(next(it))
File "test2.py",line 8,in __next__
self.b+=1
AttributeError: 'MyNumber' object has no attribute 'b'
我在 Replit,python3 中用 shell 运行它。 请帮我检查一下。
解决方法
你可能是指
def __next__(self):
b=self.it
b+=1
return b
或
def __next__(self):
self.b=self.it
self.b+=1
return self.b
(如上面的评论中所述,这可能不会做您认为会做的事情,但这是与您的错误消息不同的问题。)