我如何在Python中引用静态类变量?

时间:2017-05-08 10:39:22

标签: python static-methods

我有一个'静态'类

class A:
    a = 1

    @staticmethod
    def doStuff():
        foo(A.a)

现在我需要一个派生类

class B(A):
    a = 2

基本上

    @staticmethod
    def doStuff():
        foo(B.a)

如果A不是伪静态类,我可以从A和

中导出B.
foo(self.a)

会做我想要的。有没有办法避免将doStuff()复制到B类并用foo(B.a)替换foo(A.a)?以“自我”的方式引用课堂并且使用A级的doStuff看起来像是

def doStuff():
    foo(class_self.a)

1 个答案:

答案 0 :(得分:2)

我认为您的代码中的class代替def

答案不是使用静态方法,而是使用类方法。这将完全按照您的意愿行事。

class A:
    a = 1

    @classmethod
    def doStuff(cls):
        foo(cls.a)

class B(A):
    a = 2