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.
 
    