Python 重写父类方法
生活随笔
收集整理的這篇文章主要介紹了
Python 重写父类方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python繼承中,如果子類在調用某個方法時,它首先是從派生類(也就是當前類)中去找對應的方法,如果當前類中找不到對應的方法,就會去基類(派生類)中去逐個查找。
若父類的方法不能滿足子類的需要,那么子類就可以重寫或者完善父類的方法。
例如:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' # coding=utf-8 class Father():def smile(self):print('哈哈哈')class Son(Father):def smile(self): #重寫父類的方法Father().smile() #調用了父類,這種屬于在父類的基礎上完善父類的方法,若不調用父類的smile()方法就屬于完全舍棄父類的此功能來重寫這個方法super(Son,self).smile()#這個是自動找到父類中的smile方法,如果繼承了多個父類,那么會按照繼承的父類的順序去一個一個找print('呵呵呵') s= Son() s.smile()如果繼承了多個父類,多個父類中都有子類要重寫完善的方法,那么可以使用上面的Father().smile()調用,也可以使用一個逼格較高的super來調用,super會從繼承的父類里一個一個去找,先在哪個類里找到就繼承哪個類里的該方法。代碼如下:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' # coding=utf-8 class Zll():# def smile(self):# print('哈哈哈')class Dcg():def smile(self):print('啊啊啊啊啊')class Lw():def smile(self):print('嘿嘿嘿')class Xz(Zll,Dcg,Lw):def smile(self): #重寫父類的方法# Dcg().smile() #調用了父類# super(Xz,self).smile() #這個自動幫你找到父類的,如果這樣寫會按繼承順序,Zll、Dcg、Lwy一個一個去找,先在哪個類中找到就先使用哪個類里的smile方法print('呵呵呵') x = Xz() x.smile()總結
以上是生活随笔為你收集整理的Python 重写父类方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中operator.item
- 下一篇: Python中经典类和新式类的区别