Numbers
When creating new numbers (or extending existing numbers), we'll turn to the numbers
module. This module contains the abstract definitions of Python's built-in numeric types. These types form a tall, narrow hierarchy, from the simplest to the most elaborate. In this case, simplicity (and elaboration) refers to the collection of methods available.
There's an abstract base class named numbers.Number
that defines all of the numeric and number-like classes. We can see that this is true with interactions like the following one:
>>> import numbers >>> isinstance( 42, numbers.Number ) True >>> 355/113 3.1415929203539825 >>> isinstance( 355/113, numbers.Number ) True
Clearly, integer and float values are subclasses of the abstract numbers.Number
class.
The subclasses include numbers.Complex
, numbers.Real
, numbers.Rational
, and numbers.Integral
. These definitions are roughly parallel mathematical thoughts on the various classes of numbers.
The decimal...