【发布时间】:2018-03-22 18:53:52
【问题描述】:
从父类中的子类访问变量是否正确?这是一个好的 OOP 方法吗?我不需要创建 Animal 类的实例,但如果我愿意,make_sound 方法会引发 AttributeError,这让我很困扰。
class Animal:
def make_sound(self):
print(self.sound)
class Cat(Animal):
sound = 'meow'
class Dog(Animal):
sound = 'bark'
cat = Cat()
cat.make_sound()
dog = Dog()
dog.make_sound()
【问题讨论】:
-
这正是你应该做的。如果可能的 AttributeError 困扰您,请在 Animal 中将声音设置为默认值,即使它是 None。