色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

python子類定制父類及多態調用介紹

jf_78858299 ? 來源:梯閱線條 ? 作者:小梯子 ? 2023-02-23 14:51 ? 次閱讀

python通過子類繼承超類來定制子類的行為。

1.1 重寫類方法

(1)如果子類和超類有同名方法,根據搜索樹規則,優先調用子類方法。

(2)子類重寫超類方法:在子類定義和父類已有的同名的方法。

(3)一般是對父類方法的加強,即存在父類方法的處理邏輯。

1.2 父類名.方法名

用法

class SupClass:
   def methodA(self):pass
   
class SubClass(SupClass):
   def methodA(self):
       SupClass.methodA(self)
       pass

描述

在子類,通過“父類名.方法名”調用父類同名方法,達到簡化代碼的效果。

SupClass.methodA(self):

(1)通過“類名.方法名”調用方法時,需要送一個實例給方法。

(2)self為當前調用方法的實例,故需顯式將self送給父類方法。

1.3 多態

python子類如果重寫超類的方法,那么根據搜索樹規則:

超類實例對象,會調用超類的同名方法;

子類實例對象,會調用子類的同名方法;

即,會根據當前調用實例,自動調用對應的方法。

條件:

(1) 繼承:多態發生在子類和超類之間

(2) 重寫:子類重寫父類方法。

1.4 示例

class Tool:
   def payraise(self,p,*args):
       p.payraise(*args)
       
class MyPerson:
   def __init__(self,name,job = None,pay = 0):
       self.name = name
       self.job = job
       self.pay = pay
   def payraise(self,rate):
       self.pay = int(self.pay * (1 + rate))
   def __str__(self):
       return 'MyPerson:name={0.name},job={0.job},pay={0.pay}'.format(self)

class MyManager(MyPerson):# 繼承
   # 重寫
   def payraise(self,rate,bonus=0.1):
       MyPerson.payraise(self,rate+bonus)
       
if __name__ == '__main__':
   mp1 = MyPerson('mp1')
   mp2 = MyPerson('mp2','c++開發',20000)
   mm1 = MyManager('mm1','開發經理',50000)
   
   print(mp1)
   print(mp2)
   print(mm1)
   
   mp2.payraise(0.1)
   mm1.payraise(0.1)
   print(mp2)
   print(mm1)  
   
   print('#'*10+'多態'+'#'*10)
   for p in (mp1,mp2,mm1):
       p.payraise(0.1)
       print(p)
       
   t = Tool()
   
   print('#'*10+'多態'+'#'*10)
   for p in (mp1,mp2,mm1):
       t.payraise(p,0.1)
       print(p)
# 打開cmd,執行下面示例
E:\\documents\\F盤>python myperson.py
MyPerson:name=mp1,job=None,pay=0
MyPerson:name=mp2,job=c++開發,pay=20000
MyPerson:name=mm1,job=開發經理,pay=50000
MyPerson:name=mp2,job=c++開發,pay=22000
MyPerson:name=mm1,job=開發經理,pay=60000
##########多態##########
MyPerson:name=mp1,job=None,pay=0
MyPerson:name=mp2,job=c++開發,pay=24200
MyPerson:name=mm1,job=開發經理,pay=72000
##########多態##########
MyPerson:name=mp1,job=None,pay=0
MyPerson:name=mp2,job=c++開發,pay=26620
MyPerson:name=mm1,job=開發經理,pay=86400
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程語言
    +關注

    關注

    10

    文章

    1942

    瀏覽量

    34711
  • python
    +關注

    關注

    56

    文章

    4793

    瀏覽量

    84634
收藏 人收藏

    評論

    相關推薦

    請教:子類數據流使用后數據類型就變成了而不是子類

    本帖最后由 wyq95361977 于 2016-6-29 19:50 編輯 在練習系時碰到一個問題例子中使用信號燈再使用定時器,的關系還是不變都是子類但是我在練習時數據流
    發表于 06-29 19:40

    建立即其子類的同名方法——關于重寫VI的問題

    隨著項目的進行,發現的重要性,最近學習時遇到了一些問題:按照《寶典》的介紹(P353),創建了一個運算作為,又創建了一個加法
    發表于 09-23 17:07

    3分鐘看懂Python面向對象

    的直接感覺是這是一種復用代碼的行為。繼承可以理解為它是以普通的為基礎建立專門的對象,子類和它繼承的是IS-A的關系。多重繼承:不同于
    發表于 06-08 14:20

    如何使用Python? 優勢有哪些?

    多態  如果子類繼承了,但是又想改變的方法,則這時無須修改
    發表于 07-30 18:08

    python的繼承

    python的繼承的繼承,跟人類繁衍的關系相似。被繼承的稱為基(也叫做
    發表于 03-08 16:40

    python多態的property屬性

    python多態多態,是指在同一型下的不同形態。比如下面這段代碼class People: def speak(self):passc
    發表于 03-09 16:38

    詳解IO設備管理之父調用子類方法的過程

    ,對象創建和初始化流程結束。——這個注冊過程映射到面向對象中,是繼承方法后子類改寫方法的過程。2.2.2 再看對象使用從上往下
    發表于 10-09 15:18

    探討一下JAVA子類調用構造器函數

    ;#125;子類 調用 的構造函數:(構造函數不會被繼承,只是被子類調用而已)1、
    發表于 10-19 14:51

    更好地理解SystemVerilog的多態Polymorphism

    保存子類對象,并直接使用句柄來調用子類的方法。因此,SystemVerilog中的多態性是一
    發表于 12-05 17:34

    python的繼承詳解

    python的繼承 的繼承,跟人類繁衍的關系相似。 被繼承的稱為基(也叫做
    的頭像 發表于 03-08 16:40 ?3096次閱讀

    python多態的property屬性

    python多態 多態,是指在同一型下的不同形態。 比如下面這段代碼 class People: def speak(self): p
    的頭像 發表于 03-09 16:37 ?1257次閱讀

    淺析JVM虛方法表和方法調用

    今天我們來填坑,在之前的一篇文章深挖?向對象編程三?特性 --封裝、繼承、多態中 我們遺留了一個問題:當引用指向子類對象時,JVM是如何知曉調用
    的頭像 發表于 03-02 09:57 ?910次閱讀
    淺析JVM虛方法表和方法<b class='flag-5'>調用</b>

    子類中繼承的方法

    首先得在中創建一個方法,利用創建的方法的格式void+方法名(){},然后在子類調用這個方法:直接輸入方法名,再按enter,便會出現super.方法名(),表示
    的頭像 發表于 04-06 14:53 ?1399次閱讀
    <b class='flag-5'>子類</b>中繼承<b class='flag-5'>父</b><b class='flag-5'>類</b>的方法

    super調用的構造方法

    我們分析這句話“對象的引用”,那說明我們使用的時候只能在子類中使用,既然是對象的引用,那么我們也可以用來調用成員屬性以及成員方法,當然了,這里的 super 關鍵字還能夠
    的頭像 發表于 10-10 16:42 ?905次閱讀
    super<b class='flag-5'>調用</b><b class='flag-5'>父</b><b class='flag-5'>類</b>的構造方法

    java子類可以繼承的什么

    Java是一種面向對象的編程語言,它支持繼承的概念。繼承是面向對象編程的三大特性之一,它允許一個(稱為子類或派生)繼承另一個(稱為
    的頭像 發表于 08-20 11:02 ?1157次閱讀
    主站蜘蛛池模板: 国产精品高清视频在线| 亚洲日本欧美天堂在线| 内射后入在线观看一区| 久久国产露脸老熟女熟69| 国产一区二区三区四区五在线观看 | 一个色综合久久| 性色欲情网站IWWW| 首页 国产 亚洲 中文字幕| 日本熟妇多毛XXXXX视频| 欧美2019高清hd巨大| 免费鲁丝片一级在线观看| 久久综合亚洲色hezyo| 久久99综合国产精品亚洲首页| 国产亚洲精品久久久久久鸭绿欲 | 小护士大pp| 天堂精品国产自在自线| 手机在线播放成人亚洲影院电影| 色偷偷伊人| 天美传媒在线观看完整高清| 午夜aaaa| 亚洲大片免费看| 亚洲精品久久区二区三区蜜桃臀| 亚洲国产区中文在线观看| 亚洲国产亚综合在线区尤物| 亚洲精品久久久久AV无码林星阑| 亚洲乱码中文字幕久久孕妇黑人| 亚洲日产2020乱码草莓毕| 亚洲宅男天堂a在线| 在线高清电影理论片4399| 自拍偷拍12p| aaa级黄影片| 被送到黑人性奴俱乐部| 国产91青青成人a在线| 国产精品亚洲欧美一区麻豆| 国产一卡 二卡三卡四卡无卡乱码视频 | 欧美精品一区二区三区视频| 秋霞电影院午夜伦高清| 色偷偷亚洲男人天堂| 亚洲人交性视频| 6080YYY午夜理论片在线观看| brazzers欧美最新版视频|