我想设置一个可以由类或其子类的所有实例共享的类属性。任何实例都应该可以设置该属性。
我尝试了以下方法:
class A:
x = 1
@classmethod
def setX(cls, val):
if cls.__bases__:
cls = cls.__bases__[-1]
cls.x = val
在单继承的情况下,这似乎工作正常。但是如果我使用多重继承,取决于继承的顺序,它要么工作要么不工作(即,类 A 并不总是最后一个bases)。
任何关于稳健实施的想法?