从基础 class 更新 child class 个变量

Update child class variables from base class

我想知道是否有一种方法可以从 base/parent 更新 children 中的 class 个变量。生日功能有没有办法更新适当的 class 变量?

我知道在这个例子中,也许正确的做法是将 age 设为一个实例变量。但我有一个案例,我想坚持让年龄成为一个 class 变量。

class Animal():
    def __init__(self):
        pass

    def birthday(self):
        self.age = self.age + 1


class Cat(Animal):
    age = 4


class Dog(Animal):
    age = 2


d = Dog()
print(Dog.age)
d.birthday()
print(Dog.age)

设置 class 上的值。

class Animal():
    def __init__(self):
        pass

    def birthday(self):
        self.__class__.age = self.__class__.age + 1
        # shorter version:
        # self.__class__.age += 1