裝的是python3.9的解釋器, 在寫python迭代器時報錯TypeError: iter() returned non-iterator of type 'int'
class Gen(object): def __iter__(self): self.a=10 return self.a #此處應該直接返回self def __next__(self): self.a += 1 return self.a if __name__ == '__main__': g = Gen() gen = iter(g) print(g) print(next(gen)) print(next(gen)) print(next(gen)) print(next(gen))
原來是__iter__方法中返回值錯誤,應該返回self,而不應該是self.a
def __iter__(self): self.a=10 return self
運行結果如下:
<__main__.Gen object at 0x0157E328> 11 12 13 14