title: Directly calling SeqIO.parse() in for loop works, but using it separately beforehand doesn't? Why?
body: <p>In python this code, where I directly call the function SeqIO.parse() ,  runs fine: </p>
  
  <pre><code>from Bio import SeqIO
  a = SeqIO.parse("a.fasta", "fasta")
  records = list(a)
  
  for asq in SeqIO.parse("a.fasta", "fasta"):
      print("Q")
  </code></pre>
  
  <p>But this, where I first store the output of SeqIO.parse() in a variable(?) called a, and then try to use it in my loop, it doesn't run: </p>
  
  <pre><code>from Bio import SeqIO
  a = SeqIO.parse("a.fasta", "fasta")
  records = list(a)
  
  for asq in a:
      print("Q")
  </code></pre>
  
  <p>Is this because a the output from the function || SeqIO.parse("a.fasta", "fasta") || is being stored in 'a' differently from when I directly call it? 
  What exactly is the identity of 'a' here. Is it a variable? Is it an object? What does the function actually return? </p>