从基础 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
我想知道是否有一种方法可以从 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