New submission from Chris Jerdonek <chris.jerdo...@gmail.com>:

While converting code from Python 2 to Python 3, I came across the "gotcha" 
that strings implement __iter__ in Python 3 but not in Python 2.

Looking through the documentation, I don't seem to see anything like this 
mentioned in the library portion of either Python 2 or 3's documentation:

http://docs.python.org/library/stdtypes.html#iterator-types
http://docs.python.org/py3k/library/stdtypes.html#iterator-types

Or in the documentation describing differences between 2 and 3:

http://docs.python.org/release/3.0.1/whatsnew/3.0.html

In fact, the Python 2 and 3 sections on iterator types seem largely the same.  
Python 2's documentation even seems a bit misleading in this regard.  At the 
beginning of this section, it says, "Sequences, described below in more detail, 
always support the iteration methods [of which __iter__() is the main one]."  
And str and unicode are the first two types mentioned in that next section on 
sequence types.

Here is a blog post I came across about this issue:

http://plope.com/Members/chrism/python_2_vs_python_3_str_iter

I think it would be worth highlighting this issue somewhere in the Python 
documentation, or at least acknowledging the change (unless I'm simply looking 
in the wrong place, in which case maybe it should be made more visible).

----------
assignee: docs@python
components: Documentation
messages: 157783
nosy: cjerdonek, docs@python
priority: normal
severity: normal
status: open
title: Document whether strings implement __iter__
type: enhancement
versions: Python 2.6, Python 2.7, Python 3.1, Python 3.2, Python 3.3, Python 3.4

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue14528>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to