如何使用包含类名称的字符串来引用类本身?
类并不特殊,它们只是变量中包含的值。如果您说过:
class X(object): pass
在全局范围内,则变量“ X”将是对类对象的引用。
您可以使用’globals()’将当前脚本/模块的全局变量作为字典获取,因此:
classobj= globals()[self.__class__.__name__]
print classobj.var
(locals()
也可用于局部变量;在它们之间,您永远不需要使用可怕的eval()
变量来访问变量。)
但是,正如David所指出的那样,self.__class__
它 已经 是了classobj
,因此无需继续按名称从全局变量中获取它;self.__class__.var
很好 虽然确实是:
print self.var