Итак, у меня есть эта проблема, я хочу получить имя класса 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, поэтому он может повторно использовать позже. Поэтому я действительно не хочу делать свое текущее решение.
В любом случае, чтобы получить имя класса, как я предполагал? Или я просто мечтаю?
EDIT:
Спасибо, ребята, за ваши замечательные предложения. Я собираюсь потратить немного времени, взглянув на Metlasslasses. В противном случае я, вероятно, создаю словарь по всему миру и вместо этого ссылаюсь на эти экземплярированные классы.