#概要
クラスオブジェクト自身からclass名を取得する方法が書いてある日本語の記事がなかったので、備忘録として書いておきます。
#class名を取得する方法
##インスタンスから取得する
ググってもほとんどがこの方法を使って取得していました。
class A:
pass
a = A()
print(a.__class__.__name__)
>>> A
##クラスオブジェクト自身から取得する
Python3.3から実装された__qualname__
で取得できます。
追記:B.__name__
でも取得できるようです。@shiracamusさん、ありがとうございます。
また、__qualname__
はクラスオブジェクト内ではB.__qualname__
ではなく単純に__qualname__
とだけでも書けます。
class B:
pass
print(B.__qualname__)
>>> B
# 追記
class C:
qualname = __qualname__
print(C.__name__)
print(C.qualname)
>>> C
>>> C
#おわりに
__qualname__
なら、クラスオブジェクト内やクラスオブジェクトを引数に取る関数の中でも取得できますね。
追記:先ほど追記した通り、__name__
を使っても取得できるようです。
#参考文献
現在のクラスの名前を取得しますか?