bpo-39416: Document some restrictions on the default string representations of numeric classes (GH-18111)

[bpo-39416](): Document string representations of the Numeric classes

This is a change to the specification of the Python language.

The idea here is to put sane minimal limits on the Python language's default
representations of its Numeric classes.  That way "Marty's Robotic Massage Parlor
and Python Interpreter" implementation of Python won't do anything too
crazy.

Some discussion in the email thread:
Subject: Documenting Python's float.__str__()
https://mail.python.org/archives/list/python-dev@python.org/thread/FV22TKT3S2Q3P7PNN6MCXI6IX3HRRNAL/
This commit is contained in:
kpinc 2020-10-21 12:13:50 -05:00 committed by GitHub
parent c7437e2c02
commit c60394c7fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 0 deletions

View File

@ -187,6 +187,24 @@ Ellipsis
related to mathematical numbers, but subject to the limitations of numerical
representation in computers.
The string representations of the Numeric classes, computed by
:meth:`__repr__` and :meth:`__str__`, have the following
properties:
* They are valid numeric literals which, when passed to their
class constructor, produce an object having the value of the
original numeric.
* The representation is in base 10, when possible.
* Leading zeros, possibly excepting a single zero before a
decimal point, are not shown.
* Trailing zeros, possibly excepting a single zero after a
decimal point, are not shown.
* A sign is shown only when the number is negative.
Python distinguishes between integers, floating point numbers, and complex
numbers:

View File

@ -0,0 +1 @@
Document some restrictions on the default string representations of numeric classes.