Python : isinstance()はオブジェクトの型を調べる

TwitterFacebookHatena
  • 公開:2021-9-2
  • 更新:2023-10-26
  • 文章量:829
  • Python

TL;DR

isinstance()はオブジェクトの型を調べる組み込み関数である。引数のチェック、関数、メソッドの戻り値を調べるときに利用する。組み込み関数の type 関数や isinstance 関数で型を調べることができる。

isinstance()のポイント

isinstace(オブジェクト, クラス)
  • 第一引数に渡したオブジェクトが第二引数に渡したクラスに属していれば True を返す
  • 結果は bool 型で得ることができる

整数か調べる。

isinstance(100, int)

# True

第二引数にタプルを使う。第二引数が型オブジェクトのタプルの場合、 第一引数がいずれかのインスタンスであれば True を返す。

isinstance(1, (int, str))

# True

文字型が調べる。

isinstance('a', str)
# True

辞書の型を調べる。

a = {}
isinstance(a, dict)
# True

a = {}
isinstance(a, object)
# True

a = {}
isinstance(a, int)
# False

クラスを調べる。

class A:
    pass

a = A()
isinstance(a, A)

# True

type() との違い

isinstance()は、サブクラスから生成したオブジェクトはスーパークラスと同じ型であると判定する。

しかし、type()は、サブクラスとスーパークラスは異なると判定する。

class A():
    pass

class B(A):
    pass

a = A()
b = B()

isinstance(a, A) # True
isinstance(b, A) # True

type(a) == A # True
type(b) == A # False

Python : isinstance()はオブジェクトの型を調べる