如何使用包含类名称的字符串来引用类本身?
类并不特殊,它们只是变量中包含的值。如果您说过:
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
将是通常的简单方法。只要实例不会用其他东西覆盖名称,类成员就可以用作其实例的成员。



