From 116f72fa5ceb864efcc47da2f8c437fd29c7e8b3 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Tue, 12 Feb 2008 01:18:03 +0000 Subject: [PATCH] Bring decimal a bit closer to the spec for Reals. --- Lib/decimal.py | 14 ++++++++++++++ Lib/numbers.py | 5 +---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Lib/decimal.py b/Lib/decimal.py index 4f23d33d0d..dbe0695107 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 eed1f42c25..b8a5c36db9 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 -- 2.50.1