]> granicus.if.org Git - python/commitdiff
Link isinstance/issubclass to the ABC glossary entry (#12256)
authorÉric Araujo <merwok@netwok.org>
Fri, 19 Aug 2011 07:15:47 +0000 (09:15 +0200)
committerÉric Araujo <merwok@netwok.org>
Fri, 19 Aug 2011 07:15:47 +0000 (09:15 +0200)
Doc/glossary.rst
Doc/library/functions.rst

index 41228cd0e093bce3dcbfecbff1a9fa9bab253d2b..37fa9b021748a5eb7635e68d057158eb155a3f63 100644 (file)
@@ -30,7 +30,10 @@ Glossary
       Abstract base classes complement :term:`duck-typing` by
       providing a way to define interfaces when other techniques like
       :func:`hasattr` would be clumsy or subtly wrong (for example with
-      :ref:`magic methods <new-style-special-lookup>`). Python comes with many built-in ABCs for
+      :ref:`magic methods <new-style-special-lookup>`).  ABCs introduce virtual
+      subclasses, which are classes that don't inherit from a class but are
+      still recognized by :func:`isinstance` and :func:`issubclass`; see the
+      :mod:`abc` module documentation.  Python comes with many built-in ABCs for
       data structures (in the :mod:`collections` module), numbers (in the
       :mod:`numbers` module), and streams (in the :mod:`io` module). You can
       create your own ABCs with the :mod:`abc` module.
index e31dff8f84c65daa445c95f5b8fc6e4c08d5ca94..a5dacc68dcb83f77b8da8fd9b478e5995f60f5e6 100644 (file)
@@ -624,9 +624,11 @@ available.  They are listed here in alphabetical order.
 .. function:: isinstance(object, classinfo)
 
    Return true if the *object* argument is an instance of the *classinfo* argument,
-   or of a (direct or indirect) subclass thereof.  Also return true if *classinfo*
+   or of a (direct, indirect or :term:`virtual <abstract base class>`) subclass
+   thereof.  Also return true if *classinfo*
    is a type object (new-style class) and *object* is an object of that type or of
-   a (direct or indirect) subclass thereof.  If *object* is not a class instance or
+   a (direct, indirect or :term:`virtual <abstract base class>`) subclass
+   thereof.  If *object* is not a class instance or
    an object of the given type, the function always returns false.  If *classinfo*
    is neither a class object nor a type object, it may be a tuple of class or type
    objects, or may recursively contain other such tuples (other sequence types are
@@ -639,7 +641,8 @@ available.  They are listed here in alphabetical order.
 
 .. function:: issubclass(class, classinfo)
 
-   Return true if *class* is a subclass (direct or indirect) of *classinfo*.  A
+   Return true if *class* is a subclass (direct, indirect or :term:`virtual
+   <abstract base class>`) of *classinfo*.  A
    class is considered a subclass of itself. *classinfo* may be a tuple of class
    objects, in which case every entry in *classinfo* will be checked. In any other
    case, a :exc:`TypeError` exception is raised.