Pythonでインスタンスのクラス名を取得する方法
Pythonでは、インスタンスのクラス名を取得する方法として、type()や__class__を使うのが一般的です。
type()による取得
最もシンプルな方法は、type()関数を使うことです。type()はオブジェクトのクラスを返し、その__name__属性でクラス名を取得できます。
class MyClass:
pass
instance = MyClass()
print(type(instance).__name__) # 結果: 'MyClass'
__class__による取得
もう一つの方法として、インスタンスの__class__属性を使ってクラス名を取得する方法があります。
print(instance.__class__.__name__) # 結果: 'MyClass'
type()と__class__の違いはほとんどなく、どちらもほぼ同じように使用できますが、type()の方が推奨されることが多いです。
完全修飾名の取得
クラスがネストされている場合や、モジュール内で複数のクラスが定義されている場合には、クラスの完全修飾名を取得するために__qualname__を使います。
class Outer:
class Inner:
pass
instance = Outer.Inner()
print(instance.__class__.__qualname__) # 結果: 'Outer.Inner'
このように、Pythonではtype()や__class__を使って簡単にインスタンスのクラス名を取得できます。クラス名を利用したデバッグやログ出力で非常に役立つ技術です。