title: why do python strings not have __iter__ function?
body: <p>How is it that we can iterate over python strings when strings don't have an <code>__iter__</code> function?</p>
  
  <pre><code>$ python
  Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
  [GCC 4.4.3] on linux2
  Type "help", "copyright", "credits" or "license" for more information.
  &gt;&gt;&gt; "asdf".__iter__
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  AttributeError: 'str' object has no attribute '__iter__'
  &gt;&gt;&gt; it = iter("asdf")      
  &gt;&gt;&gt; it
  &lt;iterator object at 0xb736f5ac&gt;
  &gt;&gt;&gt; 
  </code></pre>
  
  <p>And more importantly (however strings are iterated over), why do python strings not follow the same convention as everything else. Particularly when the Python docs say that the <code>__iter__</code> function is needed <a href="http://docs.python.org/library/functions.html#iter">http://docs.python.org/library/functions.html#iter</a> ?</p>