[Python-3000] PEP 31XX: A Type Hierarchy for Numbers (and other algebraic entities)

Jean-Paul Calderone exarkun at divmod.com
Thu Apr 26 19:26:02 CEST 2007


On Thu, 26 Apr 2007 10:11:27 PDT, Bill Janssen <janssen at parc.com> wrote:
>> Are the base number operations in Python all that difficult to
>> understand?
>
>Well, they're a little tricky.
>
>But the basic problem with "number" support, in almost every
>programming language, is that they are too low-level an abstraction.
>A number in a program is never *just* an integer or a float.  It's
>always an integer or float (or complex, OK) deployed in support of a
>very specific purpose.  It's a loop index, or a weight in kilos, or
>the number of calendar entries for a particular day.  It often has
>units, and a fixed range of values or fixed set of values, neither of
>which are taken into account in most programming languages.
>
>Strings really suffer from the same lack of focus.  A string is never
>just a string.  It's a book title, or a filename, or a person's
>surname, or an email address.  It's usually got a particular human
>language (or computer OS) associated with it.  Each of these usages
>has particular limitations and patterns which limit both its range of
>values, and the operations which can be successfully applied to it.

I definitely agree with this, and resolving it would probably address
a large class of mistakes made when doing any programming involving
numbers and strings (anyone done much of that lately? :).

Does the introduction of a lot of base classes for `int' and `float'
do anything to address this, though?  What you really want is a bunch
of new subclasses  of them, the opposite.

Jean-Paul


More information about the Python-3000 mailing list