不使用类名调用类变量

yat*_*atu 3 python class

有没有一种方法可以在不使用类名的情况下从方法中调用类变量?

所以代替:

class ClassTest:
    var1 = 5
    def __init__(self, var2):
        self.var2 = var2 
        print(ClassTest.var1*self.var2)
Run Code Online (Sandbox Code Playgroud)

如何命名类名,而不必指定类名ClassTest

hee*_*ayl 5

您可以使用self.__class__type(self)从实例引用类对象。

编辑:

提到了用于self.var1访问类级别名称的其他答案var1,但是var1如果实例有一个,它将获得实例的属性。因此,您需要确保实例没有这样的属性。

无论如何,使用self.__class__.var1或都更安全type(self).var1,并且还向下一个读者表明该属性是类属性。