Как я могу изменить соответствующие атрибуты уровня класса, используя функцию базового класса, не перегружая функцию?
class A:
a = 0
def addOne(self):
print(A.a) # prints 0
A.a = A.a + 1
print(A.a) # it stores the value of a over all the child classes
class B(A):
a = 0
print(A.a) # prints 0
print(B.a) # prints 0
self.addOne()
print(A.a) # prints 1
print(B.a) # prints 0
Class C(A):
a = 0
print(A.a) # prints 1
print(C.a) # prints 0
self.addOne()
print(A.a) # prints 2
print(C.a) # prints 0
Я хочу B.a = 1
и C.a = 1
после self.addOne()
.
Я не хочу использовать атрибуты экземпляра, поскольку мне придется перегружать функцию addOne для всех дочерних классов.