父类的对象如何在Python中创建?

时间:2018-10-01 03:27:01

标签: python

我不确定在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构造函数呢?

1 个答案:

答案 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