Как использовать @classmethod в python с наследованием
Код:
class parent:
number = 0
def __init__(self):
self.increment_number()
@classmethod
def increment_number(cls):
cls.number += 1
class child1(main):
def __init__(self):
parent.__init__(self)
self.current_number = self.number
class child2(main):
def __init__(self):
parent.__init__(self)
self.current_number = self.number
a = child1()
print(a.current_number)
>>>1
b = child2()
print(b.current_number)
>>>1
c = child2()
print(c.current_number)
>>>2
Я пытаюсь понять, как изменить переменную в родительском классе. В этом контексте переменная number
, чтобы number
также изменяется во всех дочерних классах.
На данный момент кажется, что increment_number
метод изменяет значение числа для child1
или же child2
,
Значения current_number
, который представляет ценность number
когда объект создан, я хочу, чтобы следующие:
a = child1()
print(a.current_number)
>>>1
b = child2()
print(b.current_number)
>>>2
c = child2()
print(c.current_number)
>>>3
Где каждый новый объект, который наследует родительский класс, имеет увеличенное значение current_number
независимо от того, какой класс называется.
Любая помощь будет оценена!