Pythonの組み込み関数であるisinstance
は、オブジェクトが特定の型またはクラスのインスタンスであるかどうかを判定するために使用されます。この関数は、オブジェクトの型を確認することでコードの可読性を高め、予期せぬエラーを防ぐ役割を果たします。
基本的な使い方
isinstance
関数の基本的な構文は以下の通りです。
isinstance(object, classinfo)
ここで、object
は型を調べたいオブジェクト、classinfo
はクラス名またはクラスを要素とするタプルです。この関数はobject
がclassinfo
のインスタンスである場合、True
を返し、そうでない場合はFalse
を返します。
型判定の例
以下に、isinstance
関数を使用した具体的な型判定の例を示します。
プリミティブ型の判定例
num = 5
if isinstance(num, int):
print("numは整数型です")
else:
print("numは整数型ではありません")
イテレータ型の判定例
my_list = [1, 2, 3]
if isinstance(my_list, list):
print("my_listはリスト型です")
else:
print("my_listはリスト型ではありません")
クラス型の判定例
class Dog:
pass
my_dog = Dog()
if isinstance(my_dog, Dog):
print("my_dogはDogクラスのインスタンスです")
else:
print("my_dogはDogクラスのインスタンスではありません")
注意点
isinstance
関数の第二引数classinfo
には、単一のクラスだけでなく、複数のクラスをタプルとして渡すことも可能です。オブジェクトがタプルの要素のいずれかのインスタンスであるかを判定できます。
また、isinstance
関数と似た関数にtype
関数がありますが、type
関数では、オブジェクトがサブクラスの場合はFalse
となるので注意が必要です。そのため、一般的に簡単な判断を行いたい場合にはisinstance
の使用が推奨されます。.