Pythonでは、オブジェクトのデータ型を確認するためにtype()
関数とisinstance()
関数を使用します。
type関数
type()
関数は、オブジェクトのデータ型を確認できるPythonの組み込み関数です。以下に、type()
関数でデータ型を確認するサンプルコードを示します。
a = 123
b = 'Apple'
c = True
d = [1,2,3]
print(type(a)) # <class 'int'>
print(type(b)) # <class 'str'>
print(type(c)) # <class 'bool'>
print(type(d)) # <class 'list'>
type()
関数の返り値は、int
やstr
などのtype
型オブジェクトとなります。
isinstance関数
isinstance()
関数を用いて、オブジェクトのデータ型を判定することができます。以下に、isinstance()
関数でデータ型を判定するサンプルコードを示します。
a = 123
b = 'Apple'
print(isinstance(a, int)) # True
print(isinstance(b, int)) # False
print(isinstance(a, (int, str))) # True
isinstance()
関数の第一引数には確認したいデータ型のオブジェクトを指定し、第二引数にはデータ型を指定します。
type関数とisinstance関数の使い分け
type()
関数とisinstance()
関数では、サブクラスに対する振る舞いが異なります。
type()
関数で判定:サブクラスの型が一致した場合のみTrueisinstance()
関数で判定:スーパークラスの型が一致した場合もTrue
以下に、サブクラスに対するtype()
関数とisinstance()
関数の挙動を確認するサンプルコードを示します。
# スーパークラス
class Parent: pass
# サブクラス
class Child(Parent): pass
parent_a = Parent()
print(type(parent_a)) # <class '__main__.Parent'>
child_a = Child()
print(type(child_a)) # <class '__main__.Child'>
print(type(child_a) is Parent) # False
print(type(child_a) is Child) # True
print(isinstance(child_a, Parent)) # True
print(isinstance(child_a, Child)) # True
以上がPythonでオブジェクトの型を確認する方法についての記事です。この情報がPythonの学習に役立つことを願っています。