변수가 어떤 숫자의 인스턴스 (예 : int
, float
, Fraction
, Decimal
등)인지 확인하려고합니다.'decimal.Decimal (1)'이 'numbers.Real'의 인스턴스가 아닌 이유는 무엇입니까?
나는이 질문과 대답을 건너 캠 : How to properly use python's isinstance() to check if a variable is a number?
그러나, 나는 그런 1j
로 복잡한 숫자를 제외하고 싶습니다.
클래스 numbers.Real
False
Decimal
에 대한 번호 ...
from numbers Real
from decimal import Decimal
print(isinstance(Decimal(1), Real))
# False
모순에서, 그것은 예를 들어 Fraction(1)
와 잘 작동을 반환합니다.
documentation은 숫자와 함께 작동해야하는 몇 가지 연산을 설명하며 소수점 이하의 인스턴스에서 오류없이 테스트했습니다. 10 진수 오브젝트에는 복소수가 포함될 수 없습니다.
그래서 isinstance(Decimal(1), Real)
이 False
을 돌려주는 이유는 무엇입니까?
https://docs.python.org/3.6/library/numbers.html#the-numeric-tower –
@TomDalton 나는 그것을 읽을 수 있지만 여전히 이해가 안돼. [Number, Complex, Real, Rational, Integral]에서 t에 대한 isinstance (Decimal (1), t)는'[True, False, False, False, False]를 반환합니다. 'Decimal'이'Number' 인 경우, 왜 그 하위 안경이 아닌지요? – Delgan