[Python-Dev] PEP 0484 - the Numeric Tower

Laura Creighton lac at openend.se
Tue Oct 13 12:46:55 EDT 2015


In a message of Tue, 13 Oct 2015 08:38:07 -0700, Raymond Hettinger writes:
>
>
>> On Oct 13, 2015, at 4:21 AM, Laura Creighton <lac at openend.se> wrote:
>> 
>> Any chance of adding Decimal to the list of things that are also
>> acceptable for things annotated float?
>
>>From Lib/numbers.py:
>
>## Notes on Decimal
>## ----------------
>## Decimal has all of the methods specified by the Real abc, but it should
>## not be registered as a Real because decimals do not interoperate with
>## binary floats (i.e.  Decimal('3.14') + 2.71828 is undefined).  But,
>## abstract reals are expected to interoperate (i.e. R1 + R2 should be
>## expected to work if R1 and R2 are both Reals).
>
>That is still true:
>
>Python 3.5.0 (v3.5.0:374f501f4567, Sep 12 2015, 11:00:19) 
>[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
>Type "copyright", "credits" or "license()" for more information.
>>>> from decimal import Decimal
>>>> Decimal('3.14') + 2.71828
>Traceback (most recent call last):
>  File "<pyshell#1>", line 1, in <module>
>    Decimal('3.14') + 2.71828
>TypeError: unsupported operand type(s) for +: 'decimal.Decimal' and 'float'
>
>
>Raymond Hettinger

I take it that is a 'no'.  I merely worry about what hapens if people
start relying upon the fact that a float annotation 'will handle all
the numbers I care about' to the forgotten Decimal users such as
myself.

Laura


More information about the Python-Dev mailing list