如何在带有继承的python中使用@classmethod

时间:2018-07-05 20:47:32

标签: python python-3.x inheritance class-method

代码:

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方法更改了child1child2的数字值。

我希望创建对象时,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 个答案:

没有答案