0

我正在尝试为动物创建一个类,并设置Dog()打印狗将具有的特征,但我不太确定该怎么做,或者我哪里出错了?
我只写了大约半个小时的课,所以这就是为什么我不是很好,提前谢谢!这是我的代码!

class Animal:
    def __init__(self, animal, name, bark):
        self.animal = animal
        self.name = name
        self.bark = bark
    def Dog(self):
        self.bark = 'Woof!'
        self.animal = 'dog'
        print('A {} goes {}'.format(self.animal, self.bark))

d1 = Animal()
print(d1.dog())
4

2 回答 2

4
  • 你的Animal()类需要 3 个参数来初始化,你没有传入。
  • 您命名了该方法.Dog()(大写D),但尝试调用.dog()(全部小写)。

两者都很容易纠正:

d1 = Animal('dog', 'Fido', 'woof!')
d1.Dog()

您也不必将类的属性命名为__init__函数的参数。例如,该Dog()方法会覆盖任何属性集,那么为什么首先要设置它们__init__呢?

于 2013-09-03T11:33:27.077 回答
2

我不明白为什么你的Animal-class 有Dog- 方法。你不是想和这个一起学习继承吗?它看起来像是编程新手的典型任务。也许是这样的

class Animal:
    def __init__(self, animal, name, bark):
        self.animal = animal
        self.name = name
        self.bark = bark

    def say(self):
        print('A {} goes {}'.format(self.animal, self.bark))

class Dog(Animal):
    def __init__(self):
        Animal.__init__(self, "dog", "", "Woof!")

class Cat(Animal):
    def __init__(self):
        Animal.__init__(self, "cat", "", "Miao!")        


d1 = Dog()
d1.say()

c1 = Cat()
c1.say()

会给你

A dog goes Woof!
A cat goes Miao!
于 2013-09-03T11:43:56.480 回答