我有一个'静态'类
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)
答案 0 :(得分:2)
我认为您的代码中的class
代替def
。
答案不是使用静态方法,而是使用类方法。这将完全按照您的意愿行事。
class A:
a = 1
@classmethod
def doStuff(cls):
foo(cls.a)
class B(A):
a = 2