PEP 240, Adding a Rational Literal to Python, Moshe Zadka
[checking in for Moshe, after editorial, spell check, and formatting passes by Barry]
This commit is contained in:
parent
c671a7371d
commit
3041b2fba2
|
@ -0,0 +1,68 @@
|
|||
PEP: 240
|
||||
Title: Adding a Rational Literal to Python
|
||||
Version: $Revision$
|
||||
Author: pep@zadka.site.co.il (Moshe Zadka)
|
||||
Status: Draft
|
||||
Type: Standards Track
|
||||
Created: 11-Mar-2001
|
||||
Python-Version: 2.2
|
||||
Post-History:
|
||||
|
||||
|
||||
Abstract
|
||||
|
||||
A different PEP[1] suggests adding a builtin rational type to
|
||||
Python. This PEP suggests changing the ddd.ddd float literal to a
|
||||
rational in Python, and modifying non-integer division to return
|
||||
it.
|
||||
|
||||
|
||||
Rationale
|
||||
|
||||
Rational numbers are useful, and are much harder to use without
|
||||
literals. Making the "obvious" non-integer type one with more
|
||||
predictable semantics will surprise new programmers less then
|
||||
using floating point numbers.
|
||||
|
||||
|
||||
Proposal
|
||||
|
||||
Literals conforming to the regular expression '\d*.\d*' will be
|
||||
rational numbers.
|
||||
|
||||
|
||||
Backwards Compatibility
|
||||
|
||||
The only backwards compatible issue is the type of literals
|
||||
mentioned above. The following migration is suggested:
|
||||
|
||||
1. "from __future__ import rational_literals" will cause all such
|
||||
literals to be treated as rational numbers.
|
||||
|
||||
2. Python 2.2 will have a warning, turned off by default, about
|
||||
such literals in the absence of a __future__ statement. The
|
||||
warning message will contain information about the __future__
|
||||
statement, and indicate that to get floating point literals,
|
||||
they should be suffixed with "e0".
|
||||
|
||||
3. Python 2.3 will have the warning turned on by default. This
|
||||
warning will stay in place for 24 months, at which time the
|
||||
literals will be rationals and the warning will be removed.
|
||||
|
||||
|
||||
References
|
||||
|
||||
[1] PEP 239, Adding a Rational Type to Python, Zadka,
|
||||
http://python.sourceforge.net/peps/pep-0239.html
|
||||
|
||||
|
||||
Copyright
|
||||
|
||||
This document has been placed in the public domain.
|
||||
|
||||
|
||||
|
||||
Local Variables:
|
||||
mode: indented-text
|
||||
indent-tabs-mode: nil
|
||||
End:
|
Loading…
Reference in New Issue