Десятичный тип Python не настоящий? [Дубликат]

1

Рассмотрим следующее:

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 реализует все, что нужно считать Real соответствии с PEP3141, и что дает? Примечательно, что fractions.Fraction правильно классифицирована по приведенному выше фрагменту (например, a == b == c == True).

Теги:

1 ответ

1
Лучший ответ

Это фактически упоминается в PEP 3141:

После консультации с его авторами было принято решение о том, что десятичный тип в это время не должен быть включен в числовую башню.

Так что Decimal был намеренно исключен.

  • 0
    Это учит меня читать до конца!
  • 0
    @Jason Ища причину, я нашел здесь еще один вопрос, который более подробно, так что вы должны проверить это также.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню