Ошибка атрибутов классов и объектов Python: объект не имеет атрибута - PullRequest
0 голосов
/ 08 июля 2019

Я новичок в Python и, изучая ООП в Python, я получаю сообщения об ошибках типа

AttributeError: 'Dog' object has no attribute 'sound'

для кода ниже

class Dog:
    def __init__(self, name, age):
        self.name  = name
        self.age  = age

    def description(self):
        return print(f"name is {self.name} and age is {self.age}")

    def speak(self, sound):
        return print(f"{self.name} says {self.sound}")

tommy = Dog("tommy",10)
tommy.description()
tommy.speak("bow-bow")

Теперь мое другое сомнение связано с наследованием, когда я получаю ошибку вроде:

AttributeError: 'Bulldog' object has no attribute 'speed'

для кода ниже:

class Dog:
    def __init__(self, name, age):
        self.name  = name
        self.age  = age

    def description(self):
        return print(f"name is {self.name} and age is {self.age}")


class Bulldog(Dog):
    def run(self, speed):
        return print(f"The speed of dog is {self.speed}")

tommy = Bulldog("tommy",10)
tommy.description()
tommy.run(5)

1 Ответ

1 голос
/ 08 июля 2019

Я считаю, что вам нужно удалить себя.при попытке вернуть распечатку, поскольку они передаются в качестве параметров и не идентифицируются в самом объекте.

class Dog:
    def __init__(self, name, age):
        self.name  = name
        self.age  = age

    def description(self):
        return print("name is {self.age} and age is {self.age})


class Bulldog(Dog):
    def run(self, speed):
        return print(f"The speed of dog is {speed}")

tommy = Bulldog("tommy",10)
tommy.description()
tommy.run(5)

Это одинаково и для скорости, и для звука, обратите внимание, я также изменил некоторое форматирование того, как печататьПостановка работ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...