使用类名访问静态变量

时间:2017-05-31 20:20:56

标签: python class static-methods static-variables class-names

有没有办法在没有显式使用类名的情况下访问类变量,以防我后来决定更改类的名称?

像这样的东西

static_variable = 'stuff'

className = CLASS

def method (self):
    className.static_variable

这是否可以通过简单的方式实现?

回答

self.static_variable __class __。static_variable

1 个答案:

答案 0 :(得分:0)

对于任何寻找答案的人来说,暂时忽略混合静态变量和实例变量是不是一个好主意。

有两种简单的方法可以解决这个问题。

第一种方式

class MyClass():
    static_variable = 'VARIABLE'

    def __init__(self):
        self.instanceVariable = 'test'

    def access_static(self):
        print(__class__.static_variable)

第二种方式

class MyClass():
    static_variable = 'VARIABLE'

    def __init__(self):
        self.instanceVariable = 'test'

    def access_static(self):
        print(self.static_variable)

可以使用 .static_variable或使用来访问实例变量 self.static_variable,只要在代码中的某处为self.static_variable定义了一个实例变量。

使用self会使你在访问静态变量或实例变量方面变得模棱两可,所以我这样做的首选方法是简单地在 _class _ static_variable em>而不是 ClassName.static_variable