我不确定在Python中如何创建父类的对象。考虑以下情况。
ERROR: invalid locale name: "en_US.utf8"
这不会打印“动物已创建”。
class Animal():
def __init__(self):
print("Animal is created")
def eat(self):
print("I am eating")
class Dog(Animal):
def __init__(self, breed, name, spots):
self.breed = breed
self.name = name
self.spots = spots
def bark(self):
print("Woof! My name is {}".format(self.name))
my_dog = Dog(breed="lab", name="Sam", spots=False)
此打印“动物已创建”
但是在两种情况下,我都可以从Dogs实例(my_dog)访问Animal类的eat()方法。这意味着在两种情况下都会创建动物。那为什么为什么在case#1中看不到Animals构造函数呢?
答案 0 :(得分:1)
您应该在Animal
__init__
方法中调用父类(Dog
)__init__
方法。要获取父类的句柄,可以使用super
。与Dog.__init__
相比,这是一种更好的做法,因为它不需要显式要求父类的名称。
class Dog(Animal):
def __init__(self, breed, name, spots):
super().__init__()
self.breed = breed
self.name = name
self.spots = spots