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
関数とカスタムクラスの基本的な使い方です。この関数を使うことで、オブジェクトが特定のクラスのインスタンスであるかどうかを簡単に確認することができます。