Как использовать @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независимо от того, какой класс называется.

Любая помощь будет оценена!

0 ответов

Другие вопросы по тегам