summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2008-02-12 01:18:03 (GMT)
committerRaymond Hettinger <python@rcn.com>2008-02-12 01:18:03 (GMT)
commit116f72fa5ceb864efcc47da2f8c437fd29c7e8b3 (patch)
treeaf5cb9fde09d843bd60349f4841a3e001c39fa49
parent19a5c29d27a4d65c82658a9b30d00578bef1a913 (diff)
downloadcpython-116f72fa5ceb864efcc47da2f8c437fd29c7e8b3.zip
cpython-116f72fa5ceb864efcc47da2f8c437fd29c7e8b3.tar.gz
cpython-116f72fa5ceb864efcc47da2f8c437fd29c7e8b3.tar.bz2
Bring decimal a bit closer to the spec for Reals.
-rw-r--r--Lib/decimal.py14
-rw-r--r--Lib/numbers.py5
2 files changed, 15 insertions, 4 deletions
diff --git a/Lib/decimal.py b/Lib/decimal.py
index 4f23d33..dbe0695 100644
--- a/Lib/decimal.py
+++ b/Lib/decimal.py
@@ -1519,6 +1519,20 @@ class Decimal(object):
__trunc__ = __int__
+ @property
+ def real(self):
+ return self
+
+ @property
+ def imag(self):
+ return Decimal(0)
+
+ def conjugate(self):
+ return self
+
+ def __complex__(self):
+ return complex(float(self))
+
def __long__(self):
"""Converts to a long.
diff --git a/Lib/numbers.py b/Lib/numbers.py
index eed1f42..b8a5c36 100644
--- a/Lib/numbers.py
+++ b/Lib/numbers.py
@@ -51,10 +51,7 @@ Inexact.register(float)
## Notes on Decimal and it how relates to the numeric tower
## --------------------------------------------------------
-## Decimal is Real except that it does not support the real and imag properties
-## or the conjugate() and complex() methods. If those get defined at some
-## point, they cannot use the default implementation which would be sensitive
-## to decimal.Context and could produce different answers at different times.
+## Decimal is Real except that it does not support rich comparisons.
##
## Decimal has some of the characteristics of Integrals. It provides
## logical operations but not as operators. The logical operations only apply