Запрос наследования классов Python - PullRequest
0 голосов
/ 01 декабря 2018

Я получаю сообщение об ошибке в наследовании многоуровневого класса Python.
Это мой код:

class Animal():
    def __init__(self):
        print("Animal created")
    def whoAmI(self):
        print("Animal")
    def eat(self):
        print('eating')

class Dog(Animal):
    print("dog created")

class Cat(Dog):
    print("car created")

m = Cat()
Cat.eat()

Это ошибка, которую я получаю:

enter image description here

1 Ответ

0 голосов
/ 01 декабря 2018

Ваш код должен выглядеть следующим образом:

m = Cat()
m.eat()

m является экземпляром класса Cat, и поэтому вы можете вызвать eat() для него.Вы не можете вызывать eat на Cat, если только не скажете Cat().eat().
Это не имеет ничего общего с наследованием, так как этот код также выдает ошибку:

Animal.eat()

Кроме того, cat должен наследоватьнепосредственно от животного, а не собаки.

...