mirror of
https://github.com/python/cpython.git
synced 2025-11-20 10:57:44 +00:00
svn+ssh://pythondev@svn.python.org/python/trunk ........ r59666 | christian.heimes | 2008-01-02 19:28:32 +0100 (Wed, 02 Jan 2008) | 1 line Made vs9to8 Unix compatible ........ r59669 | guido.van.rossum | 2008-01-02 20:00:46 +0100 (Wed, 02 Jan 2008) | 2 lines Patch #1696. Don't attempt to close None in dry-run mode. ........ r59671 | jeffrey.yasskin | 2008-01-03 03:21:52 +0100 (Thu, 03 Jan 2008) | 6 lines Backport PEP 3141 from the py3k branch to the trunk. This includes r50877 (just the complex_pow part), r56649, r56652, r56715, r57296, r57302, r57359, r57361, r57372, r57738, r57739, r58017, r58039, r58040, and r59390, and new documentation. The only significant difference is that round(x) returns a float to preserve backward-compatibility. See http://bugs.python.org/issue1689. ........ r59672 | christian.heimes | 2008-01-03 16:41:30 +0100 (Thu, 03 Jan 2008) | 1 line Issue #1726: Remove Python/atof.c from PCBuild/pythoncore.vcproj ........ r59675 | guido.van.rossum | 2008-01-03 20:12:44 +0100 (Thu, 03 Jan 2008) | 4 lines Issue #1700, reported by Nguyen Quan Son, fix by Fredruk Lundh: Regular Expression inline flags not handled correctly for some unicode characters. (Forward port from 2.5.2.) ........ r59676 | christian.heimes | 2008-01-03 21:23:15 +0100 (Thu, 03 Jan 2008) | 1 line Added math.isinf() and math.isnan() ........ r59677 | christian.heimes | 2008-01-03 22:14:48 +0100 (Thu, 03 Jan 2008) | 1 line Some build bots don't compile mathmodule. There is an issue with the long definition of pi and euler ........ r59678 | christian.heimes | 2008-01-03 23:16:32 +0100 (Thu, 03 Jan 2008) | 2 lines Modified PyImport_Import and PyImport_ImportModule to always use absolute imports by calling __import__ with an explicit level of 0 Added a new API function PyImport_ImportModuleNoBlock. It solves the problem with dead locks when mixing threads and imports ........ r59679 | christian.heimes | 2008-01-03 23:32:26 +0100 (Thu, 03 Jan 2008) | 1 line Added copysign(x, y) function to the math module ........
99 lines
3 KiB
ReStructuredText
99 lines
3 KiB
ReStructuredText
|
|
:mod:`numbers` --- Numeric abstract base classes
|
|
================================================
|
|
|
|
.. module:: numbers
|
|
:synopsis: Numeric abstract base classes (Complex, Real, Integral, etc.).
|
|
|
|
The :mod:`numbers` module (:pep:`3141`) defines a hierarchy of numeric abstract
|
|
base classes which progressively define more operations. These concepts also
|
|
provide a way to distinguish exact from inexact types. None of the types defined
|
|
in this module can be instantiated.
|
|
|
|
|
|
.. class:: Number
|
|
|
|
The root of the numeric hierarchy. If you just want to check if an argument
|
|
*x* is a number, without caring what kind, use ``isinstance(x, Number)``.
|
|
|
|
|
|
Exact and inexact operations
|
|
----------------------------
|
|
|
|
.. class:: Exact
|
|
|
|
Subclasses of this type have exact operations.
|
|
|
|
As long as the result of a homogenous operation is of the same type, you can
|
|
assume that it was computed exactly, and there are no round-off errors. Laws
|
|
like commutativity and associativity hold.
|
|
|
|
|
|
.. class:: Inexact
|
|
|
|
Subclasses of this type have inexact operations.
|
|
|
|
Given X, an instance of :class:`Inexact`, it is possible that ``(X + -X) + 3
|
|
== 3``, but ``X + (-X + 3) == 0``. The exact form this error takes will vary
|
|
by type, but it's generally unsafe to compare this type for equality.
|
|
|
|
|
|
The numeric tower
|
|
-----------------
|
|
|
|
.. class:: Complex
|
|
|
|
Subclasses of this type describe complex numbers and include the operations
|
|
that work on the builtin :class:`complex` type. These are: conversions to
|
|
:class:`complex` and :class:`bool`, :attr:`.real`, :attr:`.imag`, ``+``,
|
|
``-``, ``*``, ``/``, :func:`abs`, :meth:`conjugate`, ``==``, and ``!=``. All
|
|
except ``-`` and ``!=`` are abstract.
|
|
|
|
.. attribute:: Complex.real
|
|
|
|
Abstract. Retrieves the :class:`Real` component of this number.
|
|
|
|
.. attribute:: Complex.imag
|
|
|
|
Abstract. Retrieves the :class:`Real` component of this number.
|
|
|
|
.. method:: Complex.conjugate()
|
|
|
|
Abstract. Returns the complex conjugate. For example, ``(1+3j).conjugate() ==
|
|
(1-3j)``.
|
|
|
|
.. class:: Real
|
|
|
|
To :class:`Complex`, :class:`Real` adds the operations that work on real
|
|
numbers.
|
|
|
|
In short, those are: a conversion to :class:`float`, :func:`trunc`,
|
|
:func:`round`, :func:`math.floor`, :func:`math.ceil`, :func:`divmod`, ``//``,
|
|
``%``, ``<``, ``<=``, ``>``, and ``>=``.
|
|
|
|
Real also provides defaults for :func:`complex`, :attr:`Complex.real`,
|
|
:attr:`Complex.imag`, and :meth:`Complex.conjugate`.
|
|
|
|
|
|
.. class:: Rational
|
|
|
|
Subtypes both :class:`Real` and :class:`Exact`, and adds
|
|
:attr:`Rational.numerator` and :attr:`Rational.denominator` properties, which
|
|
should be in lowest terms. With these, it provides a default for
|
|
:func:`float`.
|
|
|
|
.. attribute:: Rational.numerator
|
|
|
|
Abstract.
|
|
|
|
.. attribute:: Rational.denominator
|
|
|
|
Abstract.
|
|
|
|
|
|
.. class:: Integral
|
|
|
|
Subtypes :class:`Rational` and adds a conversion to :class:`long`, the
|
|
3-argument form of :func:`pow`, and the bit-string operations: ``<<``,
|
|
``>>``, ``&``, ``^``, ``|``, ``~``. Provides defaults for :func:`float`,
|
|
:attr:`Rational.numerator`, and :attr:`Rational.denominator`.
|