最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python面向?qū)ο蟪绦蛟O(shè)計(jì)之繼承、多態(tài)原理與用法詳解

 更新時(shí)間:2020年03月23日 11:04:58   作者:隨風(fēng)行云  
這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計(jì)之繼承、多態(tài),結(jié)合實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中繼承、多態(tài)的相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Python面向?qū)ο蟪绦蛟O(shè)計(jì)之繼承、多態(tài)原理與用法。分享給大家供大家參考,具體如下:

相關(guān)內(nèi)容:

繼承:多繼承、super、__init__、重寫父類變量或函數(shù)

多態(tài)


繼承:

  • 在Python3中,不寫基類的類默認(rèn)繼承object
  • 繼承就是子類獲得了父類的全部功能:比如學(xué)生和老師都有“姓名,性別,年齡、ID”等學(xué)校人員屬性,如果學(xué)生和老師都直接繼承學(xué)校人員的“姓名,性別,年齡、ID”,那么就不必要在學(xué)生類和老師類中重復(fù)定義了。
  • 繼承指定類的方式是:class 類名(基類名image
class SchoolPerson:
  def study(self):
    print("it's time to study")

class Student(SchoolPerson):#繼承的方法
  pass

a=Student()
a.study()

----------------------
結(jié)果:
it's time to study

上述結(jié)果顯示,Student繼承了SchoolPerson中的study函數(shù)

  • python支持多繼承:class SubClassName (ParentClass1[, ParentClass2, ...]):
  • 對(duì)象對(duì)于屬性【包括變量和函數(shù)】的查找路徑:本實(shí)例對(duì)象--》本類--》基類【如果有多個(gè)基類,從左到右到基類中查找】
  • 可以調(diào)用基類的__init__方法:
    • 方式有兩種:image,建議使用super,避免錯(cuò)誤使用多次基類的__init__
class SchoolPerson:
  def __init__(self,name,age,sex,mid):
    self.name=name
    self.age=age
    self.sex=sex
    self.mid=mid
  def study(self):
    print("it's time to study")

class Student(SchoolPerson):#繼承的方法
  def __init__(self,name,age,sex,mid,grade):
    # super(Student,self).__init__(name,age,sex,mid)
    SchoolPerson.__init__(self,name,age,sex,mid)
    self.grade=grade
  def study(self):
    print("i am student,i want to study")

a=Student('A',18,'m','001',1)
a.study()
print(a.name,a.age,a.mid,a.grade)
  • 對(duì)于多繼承中的調(diào)用基類的__init__:無論多少個(gè)基類,也只會(huì)調(diào)用一次基類的__init__

imageimageimage

  • 可以覆蓋父類中屬性【變量、函數(shù)】:
class SchoolPerson:
  def __init__(self,name,age,sex,mid):
    self.name=name
    self.age=age
    self.sex=sex
    self.mid=mid
  def study(self):
    print("it's time to study")

class Student(SchoolPerson):#繼承的方法
  def __init__(self,name,age,sex,mid,grade):
    super(Student,self).__init__(name,age,sex,mid)
    self.grade=grade
  def study(self):
    print("i am student,i want to study")

a=Student('A',18,'m','001',1)
a.study()

--------------------------
結(jié)果:
i am student,i want to study

多態(tài):

image

  • python是否具有多態(tài)具有爭議性。
  • 但不論是否具有,這并不影響我們的具體使用。
class Animal:
  def __init__(self, name): 
    self.name = name
  def talk(self): 
    pass 
  @staticmethod ####如果硬要說多態(tài),建議使用靜態(tài)方法來處理,而非普通函數(shù)
  def animal_talk(obj):
    obj.talk()
class Cat(Animal):
  def talk(self):
    print('喵!')
class Dog(Animal):
  def talk(self):
    print('wang')

d = Dog("小黑")
c = Cat("小白")

# def animal_talk(obj):
#   obj.talk()  ###這也是一個(gè)能實(shí)現(xiàn)功能的函數(shù),因此python多態(tài)才具有爭議性

Animal.animal_talk(c)
Animal.animal_talk(d)

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 基于Python實(shí)現(xiàn)層次性數(shù)據(jù)和閉包性質(zhì)

    基于Python實(shí)現(xiàn)層次性數(shù)據(jù)和閉包性質(zhì)

    這篇文章主要介紹了如何利用Python實(shí)現(xiàn)層次性數(shù)據(jù)和閉包性質(zhì),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以了解一下
    2022-05-05
  • Python延遲綁定問題原理及解決方案

    Python延遲綁定問題原理及解決方案

    這篇文章主要介紹了Python延遲綁定問題原理及解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • python編程webpy框架模板之def with學(xué)習(xí)

    python編程webpy框架模板之def with學(xué)習(xí)

    這篇文章主要為大家介紹了python編程web.py框架模板之def with的學(xué)習(xí)有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • Python中的變量賦值

    Python中的變量賦值

    這篇文章主要介紹了Python中的變量賦值,Python中的變量在使用中很流暢,可以不關(guān)注類型,任意賦值,對(duì)于開發(fā)來說效率得到了提升,但不了解其中的機(jī)理,往往也會(huì)犯一些小錯(cuò),讓開發(fā)進(jìn)行的不那么流暢,本文就從語言設(shè)計(jì)和底層原理的角度,帶大家理解Python中的變量。
    2021-10-10
  • 基于python的matplotlib制作雙Y軸圖

    基于python的matplotlib制作雙Y軸圖

    這篇文章主要介紹了基于python的matplotlib制作雙Y軸圖,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-04-04
  • Python高級(jí)編程之繼承問題詳解(super與mro)

    Python高級(jí)編程之繼承問題詳解(super與mro)

    這篇文章主要介紹了Python高級(jí)編程之繼承問題,結(jié)合實(shí)例形式詳細(xì)分析了Python多繼承、MRO順序及super調(diào)用父類等相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11
  • 如何用python做逐步回歸

    如何用python做逐步回歸

    這篇文章主要介紹了如何用python 做逐步回歸,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • python密碼學(xué)列置換密碼學(xué)習(xí)

    python密碼學(xué)列置換密碼學(xué)習(xí)

    這篇文章主要為大家介紹了python密碼學(xué)列置換密碼學(xué)習(xí)的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 使用python爬取B站千萬級(jí)數(shù)據(jù)

    使用python爬取B站千萬級(jí)數(shù)據(jù)

    B站我想大家都熟悉吧,其實(shí) B 站的爬蟲網(wǎng)上一搜一大堆。不過紙上得來終覺淺,絕知此事要躬行,我碼故我在。
    2018-06-06
  • python中l(wèi)ist列表的高級(jí)函數(shù)

    python中l(wèi)ist列表的高級(jí)函數(shù)

    這篇文章主要為大家詳細(xì)介紹了python中l(wèi)ist列表的高級(jí)函數(shù),感興趣的小伙伴們可以參考一下
    2016-05-05

最新評(píng)論

晋中市| 天津市| 庄河市| 福贡县| 米脂县| 尤溪县| 雷山县| 遂川县| 夏邑县| 谷城县| 济南市| 海门市| 贵州省| 庆元县| 惠来县| 堆龙德庆县| 淮安市| 渝北区| 商南县| 隆尧县| 芜湖县| 长乐市| 分宜县| 合山市| 周口市| 惠东县| 胶州市| 诏安县| 密云县| 济源市| 鄂托克前旗| 璧山县| 平果县| 佳木斯市| 绥棱县| 大厂| 肥乡县| 道孚县| 扶余县| 稻城县| 浪卡子县|