だから私はこの問題を抱えています、私はこの方法でPythonクラスの名前を取得したい:
class TestClass():
myName = (get class name here automatically)
saveDirectory = os.path.join(saveDir, myName) # so i can save it in unique location
def __init__(self):
pass # do something
ただし、が作成され__class__.__name__
た時点では、実際にはまだ存在していないようmyName
です。__init__()
だから私は次のようにそれを関数に入れることを余儀なくされました:
class TestClass():
def __init__(self):
self.myName = self.__class__.__name__
saveDirectory = os.path.join(saveDir, self.myName) # so i can save it in unique location
pass # do something
しかし、これには大きな問題があります。クラスをインスタンス化するまでクラスの名前を取得できないためです。クラスのインスタンスごとに数ギガバイトのデータを作成して、saveDirectory に保存するつもりです。後で使用されます。したがって、現在のソリューションを実際に進めたくありません。
私が意図したとおりにクラス名を取得する方法はありますか? それとも私は夢を見ているだけですか?
編集:
素晴らしい提案をありがとう。メタクラスについて少し時間をかけて見ていきます。それ以外の場合は、おそらくグローバルに辞書を作成し、代わりにこれらのインスタンス化されたクラスへの参照を持ちます。