當我運行它時,我得到了與創建的物種對象相對應的所需字符串。我的目標是能夠在 Animal 類中創建一個名為 speak 的方法來實現相同的目的。但我對如何做到這一點沒有很好的理解。class Animal(object): def __init__(self): pass def speak(): passclass Mammal(Animal): def __init__(self): Animal.__init__(self)class Cat(Mammal): def __init__(self): Mammal.__init__(self) def __str__(self): return "meeeow"class Dog(Mammal): def __init__(self): Mammal.__init__(self) def __str__(self): return "wooof"class Primate(Mammal): def __init__(self): Mammal.__init__(self)class Hacker(Primate): def __init__(self): Primate.__init__(self) def __str__(self): return "Hello world!"garfield = Cat()print(garfield)spike = Dog()print(spike)john = Hacker()print(john)
2 回答

慕容708150
TA貢獻1831條經驗 獲得超4個贊
您繼承的類可以訪問父類中定義的任何方法。因此,要實現這一點,只需定義一個speak在Animal類中調用的新方法,print就像您在示例中所做的那樣:
class Animal(object):
def __init__(self):
print(self)
pass
def speak(self):
print(self)
然后只需創建實例并調用函數:
garfield = Cat()
garfield.speak()
輸出
meeeow

四季花海
TA貢獻1811條經驗 獲得超5個贊
修改你的 Animal 類,如下所示。當您從子類調用 super 方法時,您將創建的類的實例傳遞給父類的 init 函數。所以類的實例被傳遞給 Mammal init 函數,它調用 super 并將實例傳遞給 Animal init 函數。
class Animal(object):
def __init__(self):
self.speak()
def speak(self):
print(self)
添加回答
舉報
0/150
提交
取消