¿Cómo es que podemos iterar sobre cadenas de python cuando las cadenas no tienen una función __iter__
?¿por qué las cadenas de Python no tienen la función __iter__?
$ 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.
>>> "asdf".__iter__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute '__iter__'
>>> it = iter("asdf")
>>> it
<iterator object at 0xb736f5ac>
>>>
Y lo más importante (sin embargo, las cadenas se repiten a lo largo), ¿por qué las cadenas pitón no siguen la misma convención como todo lo demás. ¿Particularmente cuando los documentos de Python dicen que se necesita la función __iter__
http://docs.python.org/library/functions.html#iter?
Vale la pena señalar que en Python 3, las cadenas tienen __iter__. – miracle2k
Es todo una cuestión de historia, ¿no? La idea de los iteradores se originó para generalizar las funciones del generador, pero el ciclo for había estado allí todo el tiempo, dependiendo de una firma diferente. – jobermark