[Python-checkins] bpo-18558: Clarify glossary entry for "Iterable" (#3732)
Raymond Hettinger
webhook-mailer at python.org
Mon Sep 25 03:52:12 EDT 2017
https://github.com/python/cpython/commit/0bf287b6e0a42877b06cbea5d0fe6474d8061caa
commit: 0bf287b6e0a42877b06cbea5d0fe6474d8061caa
branch: master
author: Raymond Hettinger <rhettinger at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2017-09-25T00:52:06-07:00
summary:
bpo-18558: Clarify glossary entry for "Iterable" (#3732)
files:
M Doc/glossary.rst
M Doc/library/collections.abc.rst
diff --git a/Doc/glossary.rst b/Doc/glossary.rst
index dba9186d935..b947520b96b 100644
--- a/Doc/glossary.rst
+++ b/Doc/glossary.rst
@@ -535,7 +535,10 @@ Glossary
iterables include all sequence types (such as :class:`list`, :class:`str`,
and :class:`tuple`) and some non-sequence types like :class:`dict`,
:term:`file objects <file object>`, and objects of any classes you define
- with an :meth:`__iter__` or :meth:`__getitem__` method. Iterables can be
+ with an :meth:`__iter__` method or with a :meth:`__getitem__` method
+ that implements :term:`Sequence` semantics.
+
+ Iterables can be
used in a :keyword:`for` loop and in many other places where a sequence is
needed (:func:`zip`, :func:`map`, ...). When an iterable object is passed
as an argument to the built-in function :func:`iter`, it returns an
diff --git a/Doc/library/collections.abc.rst b/Doc/library/collections.abc.rst
index 58b03b9bd76..60154532094 100644
--- a/Doc/library/collections.abc.rst
+++ b/Doc/library/collections.abc.rst
@@ -107,7 +107,12 @@ ABC Inherits from Abstract Methods Mixin
.. class:: Iterable
ABC for classes that provide the :meth:`__iter__` method.
- See also the definition of :term:`iterable`.
+
+ Checking ``isinstance(obj, Iterable)`` detects classes that are registered
+ as :class:`Iterable` or that have an :meth:`__iter__` method, but it does
+ not detect classes that iterate with the :meth:`__getitem__` method.
+ The only reliable way to determine whether an object is :term:`iterable`
+ is to call ``iter(obj)``.
.. class:: Collection
More information about the Python-checkins
mailing list