\

Pythonでは、あるオブジェクトが特定のクラスのインスタンスかどうかをチェックするためにisinstance関数を使用します。この関数は、オブジェクトとクラスを引数として受け取り、オブジェクトがそのクラスのインスタンスである場合はTrueを返します。

class MyClass(object):
    pass

m1 = MyClass()
print(isinstance(m1, MyClass))  # => True

また、isinstance関数は、クラスが継承元の場合にもTrueを返します。これは、type関数との主な違いで、type関数はオブジェクトの直接の型のみをチェックします。

class Parent(object):
    pass

class Child(Parent):
    pass

c1 = Child()
print(isinstance(c1, Parent))  # => True

さらに、isinstanceの第二引数をタプルにすることで、複数のクラスに対して一度にクラス・インスタンス関係を調べることも可能です。

class A(object):
    pass

class B(object):
    pass

b1 = B()
print(isinstance(b1, (A, B)))  # => True

これらの特性により、isinstance関数はPythonでの型チェックにおいて非常に有用です。ただし、isinstance関数はオブジェクトの実際の型を返さないため、型情報が必要な場合はtype関数を使用することを検討してください。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です