From: Raymond Hettinger Date: Tue, 12 Feb 2008 01:18:03 +0000 (+0000) Subject: Bring decimal a bit closer to the spec for Reals. X-Git-Tag: v2.6a1~192 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=116f72fa5ceb864efcc47da2f8c437fd29c7e8b3;p=thirdparty%2FPython%2Fcpython.git Bring decimal a bit closer to the spec for Reals. --- diff --git a/Lib/decimal.py b/Lib/decimal.py index 4f23d33d0de2..dbe06951078f 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 eed1f42c25ff..b8a5c36db941 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