Pythonでは、isinstance()
関数を使用して変数が数値型であるかどうかを確認できます。この関数は、オブジェクトが指定したデータ型またはそのサブクラスのオブジェクトであるかどうかを判断します。
Python 2では、数値型としてint
、long
、float
、complex
の4つがあります。Python 3ではlong
が廃止され、int
、float
、complex
の3つとなります。
以下に、isinstance()
関数を使用した数値型の判定方法を示します。
# Python 2
import types
var = 1
NumberTypes = (types.IntType, types.LongType, types.FloatType, types.ComplexType)
print(isinstance(var, NumberTypes)) # True
# Python 3
NumberTypes = (int, float, complex)
print(isinstance(var, NumberTypes)) # True
また、Python 2.6以降では、numbers
モジュールのNumber
抽象基底型を使用して、上記の型から直接派生しないカスタム数値型もサポートできます。
import numbers
print(isinstance(var, numbers.Number)) # True
このチェックは、decimal.Decimal()
やfractions.Fraction()
オブジェクトに対してもTrueを返します。
以上が、Pythonのisinstance()
関数を使用した数値型の判定方法になります。これを活用することで、変数のデータ型を効率的に判断することができます。