我正在尝试为动物创建一个类,并设置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())
答案 0 :(得分:4)
Animal()
类需要3个参数来初始化,你传递的没有。.Dog()
(使用大写D
),但尝试调用.dog()
(全部小写)。两者都很容易纠正:
d1 = Animal('dog', 'Fido', 'woof!')
d1.Dog()
您没有拥有来为您的类命名属性作为__init__
函数的参数。例如,Dog()
方法会覆盖任何属性集,那么为什么要首先在__init__
中设置它们?
答案 1 :(得分:2)
我不明白为什么你的Animal
- 类有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!