亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在超類中實現打印對象的方法?

如何在超類中實現打印對象的方法?

料青山看我應如是 2021-11-30 10:23:58
當我運行它時,我得到了與創建的物種對象相對應的所需字符串。我的目標是能夠在 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


查看完整回答
反對 回復 2021-11-30
?
四季花海

TA貢獻1811條經驗 獲得超5個贊

修改你的 Animal 類,如下所示。當您從子類調用 super 方法時,您將創建的類的實例傳遞給父類的 init 函數。所以類的實例被傳遞給 Mammal init 函數,它調用 super 并將實例傳遞給 Animal init 函數。


class Animal(object):


    def __init__(self):

        self.speak()


    def speak(self):

        print(self)


查看完整回答
反對 回復 2021-11-30
  • 2 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號