On Fri, May 15, 2020 at 7:23 PM Stephen J. Turnbull
<turnbull.stephen...@u.tsukuba.ac.jp> wrote:
>
> Chris Angelico writes:
>
>  > >     (Technical note: for the convenience of implementors of 'for',
>  > >     when iter is applied to an iterator, it always returns the
>  > >     iterator itself.)
>  >
>  > That's not a mere technical detail - that's actually part of the
>  > definition of an iterator, namely that iter(x) is x. That's how you
>  > can tell that it's an iterator.
>
> From the point of view of teaching iterators to novices, I think it
> *is* a technical detail.  As has been pointed out, there are languages
> where iterators are *never* iterable.  What's *necessary* to an
> iterator as a concept is that it have a __next__.  Python chooses to
> define the iterator protocol with __iter__ being the identity for
> iterators because it makes implementing *for* straightforward.

Fair enough. Doesn't make a lot of difference, though.

>  > I don't like this term "converted".
>
> I refuse to die on that hill. :-)  Suggest a better term, I'll happily
> use it until something even better comes along.  Or I'll try to come
> up with a better one as I think about the documentation issue.
>

Unfortunately I don't have a really good generic term, but I would be
inclined to "get an iterator from" an object rather than "convert" it
to an iterator. It's still not a great term, but at least it allows
you to think about getting multiple iterators from the same thing,
even potentially getting different types of iterator.

ChrisA
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/OP5P75BGGYYNX4JNWY6YOCDMH3XZTBD7/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to