mirror of https://github.com/python/cpython
Register decimals as numbers.Number
This commit is contained in:
parent
4a1b62a555
commit
2c8585b0af
|
@ -136,6 +136,7 @@ __all__ = [
|
||||||
|
|
||||||
import copy as _copy
|
import copy as _copy
|
||||||
import math as _math
|
import math as _math
|
||||||
|
import numbers as _numbers
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from collections import namedtuple as _namedtuple
|
from collections import namedtuple as _namedtuple
|
||||||
|
@ -3608,6 +3609,12 @@ def _dec_from_triple(sign, coefficient, exponent, special=False):
|
||||||
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
# Register Decimal as a kind of Number (an abstract base class).
|
||||||
|
# However, do not register it as Real (because Decimals are not
|
||||||
|
# interoperable with floats).
|
||||||
|
_numbers.Number.register(Decimal)
|
||||||
|
|
||||||
|
|
||||||
##### Context class #######################################################
|
##### Context class #######################################################
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,7 @@ import os, sys
|
||||||
import pickle, copy
|
import pickle, copy
|
||||||
import unittest
|
import unittest
|
||||||
from decimal import *
|
from decimal import *
|
||||||
|
import numbers
|
||||||
from test.test_support import (TestSkipped, run_unittest, run_doctest,
|
from test.test_support import (TestSkipped, run_unittest, run_doctest,
|
||||||
is_resource_enabled)
|
is_resource_enabled)
|
||||||
import random
|
import random
|
||||||
|
@ -1334,6 +1335,12 @@ class DecimalUsabilityTest(unittest.TestCase):
|
||||||
|
|
||||||
class DecimalPythonAPItests(unittest.TestCase):
|
class DecimalPythonAPItests(unittest.TestCase):
|
||||||
|
|
||||||
|
def test_abc(self):
|
||||||
|
self.assert_(issubclass(Decimal, numbers.Number))
|
||||||
|
self.assert_(not issubclass(Decimal, numbers.Real))
|
||||||
|
self.assert_(isinstance(Decimal(0), numbers.Number))
|
||||||
|
self.assert_(not isinstance(Decimal(0), numbers.Real))
|
||||||
|
|
||||||
def test_pickle(self):
|
def test_pickle(self):
|
||||||
d = Decimal('-3.141590000')
|
d = Decimal('-3.141590000')
|
||||||
p = pickle.dumps(d)
|
p = pickle.dumps(d)
|
||||||
|
|
Loading…
Reference in New Issue