Python でインスタンスのクラス名を取得2021年04月28日 11時53分52秒

Python では、クラスインスタンスには __class__ 要素が生成される。その __class__ 要素のうちの一つが __name__。これを用いると現在のインスタンスのクラス名が取得できる。
% cat class_name.py
#!/usr/local/bin/python3.7

class Base:
    pass

class Derived( Base ):
    pass

b = Base()
d = Derived()

print( b.__class__.__name__ )
print( d.__class__.__name__ )
実行結果は以下の通り。
% python3.7 class_name.py
Base
Derived

C++ 等でも typeid を用いると動的にインスタンスのクラス名等を取得できるが、アーキテクチャ依存の出力なのと、実行時の実行速度が気になって避ける傾向になる。

Python では実行速度は早い方が良いが、切り詰める程までは目指さないので、こういうスクリプト言語ならの良さがある。実行速度は目指さないが、各種コードでも汎用性拡張性を重視。

次回次次回