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 math as _math
|
||||
import numbers as _numbers
|
||||
|
||||
try:
|
||||
from collections import namedtuple as _namedtuple
|
||||
|
@ -3608,6 +3609,12 @@ def _dec_from_triple(sign, coefficient, exponent, special=False):
|
|||
|
||||
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 #######################################################
|
||||
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ import os, sys
|
|||
import pickle, copy
|
||||
import unittest
|
||||
from decimal import *
|
||||
import numbers
|
||||
from test.test_support import (TestSkipped, run_unittest, run_doctest,
|
||||
is_resource_enabled)
|
||||
import random
|
||||
|
@ -1334,6 +1335,12 @@ class DecimalUsabilityTest(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):
|
||||
d = Decimal('-3.141590000')
|
||||
p = pickle.dumps(d)
|
||||
|
|
Loading…
Reference in New Issue