所以我有一个问题,我想以这种方式获取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
然而,在 myName
被创建时似乎尚不存在 __class__.__name__
。因此,我不得不将其放入 __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中,以便以后可以重复使用。所以我实际上不想继续使用我的当前解决方案。
有没有办法按照我的意图获取类名?还是我只是在做梦?
编辑:
感谢大家的建议。我将花点时间看看元类。否则,我可能会全局创建一个字典,并引用这些已实例化的类。
__init__()
中把self.MyName
设置为self.__class__.__name__
是没有必要的。直接使用self.__class__.__name__
即可! - kindall