I am confused about iterator in python. Please take a look on the code.
class MyNumbers:
def __init__(self):
self.a=4
def __iter__(self):
return self
def __next__(self):
if self.a <= 20:
x = self.a
self.a += 1
return x
else:
raise StopIteration
myclass = MyNumbers()
myiter1 = iter(myclass)
c=list(myiter1)
for x in myiter1:
print(x)
I getting no output from the above code. I was expecting some value iteration from 4.
but when i was removing c=list(myiter1)
i was getting expected output. So i am confused about it. why is it happening.