Python的Decimal类型不是Real吗?

时间:2018-09-19 13:40:01

标签: python

请考虑以下内容:

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)正确分类。

1 个答案:

答案 0 :(得分:1)

PEP 3141中实际上提到了这一点:

  

在与作者协商后,决定目前不应该将Decimal类型作为数字塔的一部分。

因此,Decimal被有意排除在外。