如何在 Python 中引用静态 class 变量?
How do I refer to static class variable in Python?
我有一个'static'class
class A:
a = 1
@staticmethod
def doStuff():
foo(A.a)
现在我需要一个派生的class
class B(A):
a = 2
基本上可以
@staticmethod
def doStuff():
foo(B.a)
如果 A 不是伪静态 class,我可以从 A 派生 B 并且
foo(self.a)
会做我想做的事。有没有办法避免将 doStuff() 复制到 class B 并将 foo(A.a) 替换为 foo(B.a)?以 'self' 方式引用 class 并使 class A s doStuff 看起来像
def doStuff():
foo(class_self.a)
?
我假设您在代码中指的是 class
而不是 def
。
答案不是使用静态方法,而是类方法。这将完全按照您的意愿行事。
class A:
a = 1
@classmethod
def doStuff(cls):
foo(cls.a)
class B(A):
a = 2
我有一个'static'class
class A:
a = 1
@staticmethod
def doStuff():
foo(A.a)
现在我需要一个派生的class
class B(A):
a = 2
基本上可以
@staticmethod
def doStuff():
foo(B.a)
如果 A 不是伪静态 class,我可以从 A 派生 B 并且
foo(self.a)
会做我想做的事。有没有办法避免将 doStuff() 复制到 class B 并将 foo(A.a) 替换为 foo(B.a)?以 'self' 方式引用 class 并使 class A s doStuff 看起来像
def doStuff():
foo(class_self.a)
?
我假设您在代码中指的是 class
而不是 def
。
答案不是使用静态方法,而是类方法。这将完全按照您的意愿行事。
class A:
a = 1
@classmethod
def doStuff(cls):
foo(cls.a)
class B(A):
a = 2