title: Does for loop call __iter__?
body: <p>Look at below sample:</p>
  <pre><code>a = [1, 2, 3, 4]
   
  for i in a:
      print(a)
  </code></pre>
  <p><code>a</code> is the list (iterable) not the iterator.</p>
  <p>I'm not asking to know that <code>__iter__</code> or <code>iter()</code> convert list to iterator!</p>
  <p>I'm asking to know if for loop itself convert list implicitly then call <code>__iter__</code> for iteration keeping list without removing like iterator?</p>
  <p>Since stackoverflow identified my question as possible duplicate:
  The unique part is that I'm not asking about for loop as concept nor <code>__iter__</code>, I'm asking about the core mechanism of for loop and relationship with iter.</p>