Pythonでは、オブジェクトが特定のクラスのインスタンスであるかどうかを確認するためにisinstance関数を使用します。この関数は、オブジェクトが指定したクラスのインスタンスであるか、またはそのクラスのサブクラスのインスタンスである場合にTrueを返します。
class MyClass:
pass
x = MyClass()
print(isinstance(x, MyClass)) # Output: True
上記の例では、xはカスタムクラスMyClassのインスタンスであるため、isinstance関数はTrueを返します。
また、isinstance関数は、オブジェクトが複数のクラスのいずれかのインスタンスであるかどうかを確認するためにも使用できます。これは、第二引数にクラスのタプルを渡すことで実現できます。
class MyClass:
pass
class MyOtherClass(MyClass):
pass
q = MyOtherClass()
print(isinstance(q, MyClass)) # Output: True
print(isinstance(q, MyOtherClass)) # Output: True
print(isinstance(q, object)) # Output: True
この例では、qはMyOtherClassのインスタンスであり、MyOtherClassはMyClassのサブクラスであるため、qはMyClassとobjectの両方のインスタンスとして認識されます。
以上がPythonのisinstance関数とカスタムクラスの基本的な使い方です。この関数を使うことで、オブジェクトが特定のクラスのインスタンスであるかどうかを簡単に確認することができます。