请考虑以下内容:
from decimal import Decimal
from numbers import Number, Complex, Real
z = Decimal(0)
# Expected: a == b == c == True
# Actual (Python 3.6.5):
a = isinstance(z, Number) # True
b = isinstance(z, Complex) # False
c = isinstance(z, Real) # False
Decimal
似乎已经实现了根据PEP3141被认为是Real
所需要的一切,那么有什么用呢?值得注意的是,fractions.Fraction
已通过上述代码段(例如a == b == c == True
)正确分类。