mirror of https://github.com/python/cpython
Link isinstance/issubclass to the ABC glossary entry (#12256)
This commit is contained in:
parent
f06568cbd8
commit
e0054c51c7
|
@ -30,7 +30,10 @@ Glossary
|
||||||
Abstract base classes complement :term:`duck-typing` by
|
Abstract base classes complement :term:`duck-typing` by
|
||||||
providing a way to define interfaces when other techniques like
|
providing a way to define interfaces when other techniques like
|
||||||
:func:`hasattr` would be clumsy or subtly wrong (for example with
|
: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
|
data structures (in the :mod:`collections` module), numbers (in the
|
||||||
:mod:`numbers` module), and streams (in the :mod:`io` module). You can
|
:mod:`numbers` module), and streams (in the :mod:`io` module). You can
|
||||||
create your own ABCs with the :mod:`abc` module.
|
create your own ABCs with the :mod:`abc` module.
|
||||||
|
|
|
@ -624,9 +624,11 @@ available. They are listed here in alphabetical order.
|
||||||
.. function:: isinstance(object, classinfo)
|
.. function:: isinstance(object, classinfo)
|
||||||
|
|
||||||
Return true if the *object* argument is an instance of the *classinfo* argument,
|
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
|
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*
|
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
|
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
|
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)
|
.. 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
|
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
|
objects, in which case every entry in *classinfo* will be checked. In any other
|
||||||
case, a :exc:`TypeError` exception is raised.
|
case, a :exc:`TypeError` exception is raised.
|
||||||
|
|
Loading…
Reference in New Issue