欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python類繼承和多態(tài)原理解析

 更新時(shí)間:2020年02月05日 13:50:48   作者:知一以天  
這篇文章主要介紹了python類繼承和多態(tài)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了python類繼承和多態(tài)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

現(xiàn)在屬于是老年人的腦子,東西寫著寫著就忘了,東西記著記著就不知道了。之前學(xué)C++的時(shí)候就把類、對(duì)象這塊弄得亂七八糟,現(xiàn)在是因?yàn)楹芟胪鎝ython,所以就看看python的類和對(duì)象。

就像說的,類有三個(gè)特征:封裝、繼承、多態(tài)。

1、封裝:類封裝了一些方法,可通過一定的規(guī)則約定方法進(jìn)行訪問權(quán)限。

C++中的成員變量有public、private、ptotected。

在python中,默認(rèn)的成員變量都是public的,如果成員變量前面是加兩個(gè)下劃線,表示該成員變量是私有的。并且private類不能被繼承類引用,并且不允許直接訪問。

2、繼承:在定義一個(gè)類的時(shí)候可以從當(dāng)前有的類中進(jìn)行繼承。

python是允許多繼承的,并且在子類中擁有父類所有的成員變量和方法,為了緩解代碼中的冗余,子類在父類的基礎(chǔ)上增加的成員變量可以如下修改。

class Person(object):
  def __init__(self,name,sex):
    self.name = name
    self.sex = sex

class Child(Person):             # Child 繼承 Person
  def __init__(self,name,sex,mother,father):
    Person.__init__(self,name,sex)    # 子類對(duì)父類的構(gòu)造方法的調(diào)用
    self.mother = mother
    self.father = father

May = Child("May","female","April","June")
print(May.name,May.sex,May.mother,May.father)

3、多態(tài):當(dāng)子類繼承父類之后,成員方法既可以重寫也可以不重寫。當(dāng)調(diào)用的時(shí)候只要保證新方法編寫正確,不用管原來的代碼。

對(duì)擴(kuò)展開放(Open for extension):允許子類重寫方法函數(shù)
對(duì)修改封閉(Closed for modification):不重寫,直接繼承父類方法函數(shù)
python是一種動(dòng)態(tài)語言,動(dòng)態(tài)語言是在運(yùn)行的時(shí)候確定數(shù)據(jù)類型的語言。變量在使用前不用聲明,通常變量的類型是被復(fù)制的那個(gè)值的類型。

靜態(tài)語言是在編譯的時(shí)候變量的數(shù)據(jù)類型即可確定的語言,多數(shù)靜態(tài)類型語言要求在使用變量之前鼻血聲明數(shù)據(jù)類型。

在類中,當(dāng)要對(duì)成員變量進(jìn)行約束的時(shí)候可以使用@property,python內(nèi)置的@property裝飾器是負(fù)責(zé)把一個(gè)方法變成屬性調(diào)用

在實(shí)例屬性操作的時(shí)候,就知道該屬性很可能不是直接暴露的,而是通過getter和setter方法來實(shí)現(xiàn)的。還可以定義只讀屬性,只定義getter方法不定義setter就是一個(gè)只讀屬性

請(qǐng)利用@property給一個(gè)Screen對(duì)象加上width和height屬性,以及一個(gè)只讀屬性resolution:

class Screen(object) :
  @property
  def width(self) :
    return self._width

  @width.setter
  def width(self,valuer) :
    if not isinstance(valuer,int):
      raise ValueError('score must be an integer')
    if valuer < 0 :
      raise ValueError('score must over zero')  
    self._width=valuer

  @property
  def height(self) :
    return self._height

  @height.setter
  def height(self,number) :
    if not isinstance(number,int) :
      raise ValueError('score must be an integer')
    if number < 0 :
      raise ValueError('score must be an zero')
    self._height = number

  @property
  def resolution(self):
    return self._width * self._height
s=Screen()
s.width = 1024
s.height = 768
print(s.resolution)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • tornado框架blog模塊分析與使用

    tornado框架blog模塊分析與使用

    這篇文章主要介紹了tornado框架blog模塊的使用方法,大家參考使用吧
    2013-11-11
  • 使用python如何刪除同一文件夾下相似的圖片

    使用python如何刪除同一文件夾下相似的圖片

    這篇文章主要給大家介紹了關(guān)于利用python如何刪除同一文件夾下相似的圖片的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • pandas 實(shí)現(xiàn)將重復(fù)表格去重,并重新轉(zhuǎn)換為表格的方法

    pandas 實(shí)現(xiàn)將重復(fù)表格去重,并重新轉(zhuǎn)換為表格的方法

    下面小編就為大家分享一篇pandas 實(shí)現(xiàn)將重復(fù)表格去重,并重新轉(zhuǎn)換為表格的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python利用前序和中序遍歷結(jié)果重建二叉樹的方法

    Python利用前序和中序遍歷結(jié)果重建二叉樹的方法

    這篇文章主要介紹了Python利用前序和中序遍歷結(jié)果重建二叉樹的方法,實(shí)例分析了Python二叉樹的定義與遍歷操作技巧,需要的朋友可以參考下
    2016-04-04
  • python從入門到實(shí)踐之組合數(shù)據(jù)類型

    python從入門到實(shí)踐之組合數(shù)據(jù)類型

    這篇文章主要為大家介紹了python組合數(shù)據(jù)類型,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Python利用Xpath選擇器爬取京東網(wǎng)商品信息

    Python利用Xpath選擇器爬取京東網(wǎng)商品信息

    這篇文章主要介紹了Python利用Xpath選擇器爬取京東網(wǎng)商品信息,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python for循環(huán)remove同一個(gè)list過程解析

    python for循環(huán)remove同一個(gè)list過程解析

    這篇文章主要介紹了python for循環(huán)remove同一個(gè)list過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 用python實(shí)現(xiàn)域名資產(chǎn)監(jiān)控的詳細(xì)步驟

    用python實(shí)現(xiàn)域名資產(chǎn)監(jiān)控的詳細(xì)步驟

    域名資產(chǎn)監(jiān)控,通過輸入一個(gè)主域名,找到該域名對(duì)應(yīng)的ip地址所在的服務(wù)器的端口開閉情況,本文重點(diǎn)給大家介紹用python實(shí)現(xiàn)域名資產(chǎn)監(jiān)控的問題,需要的朋友可以參考下
    2021-11-11
  • 一篇文章帶你入門python之推導(dǎo)式

    一篇文章帶你入門python之推導(dǎo)式

    這篇文章主要為大家詳細(xì)介紹了python的推導(dǎo)式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • pytorch實(shí)現(xiàn)線性擬合方式

    pytorch實(shí)現(xiàn)線性擬合方式

    今天小編就為大家分享一篇pytorch實(shí)現(xiàn)線性擬合方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01

最新評(píng)論