面向對象

今天給你們介紹一下什麼是面向對象。python

咱們都知道python是面向對象的程序設計,那什麼是面向對象?ide

面向對象的程序設計的核心是對象。簡單的理解對象的話,就是把本身看成上帝,上帝眼裏世間存在的萬物都是對象,不存在的也能夠本身創造。函數

無論是面向對象仍是面向過程,都有本身的優勢,面向對象的優勢是解決了程序的擴展性,對某一個對象的單獨修改會馬上反映導整個體系中,例如對遊戲中一我的物參數的特徵和技能修改都很容易(由於你是上帝,你想怎麼改就怎麼改)spa

咱們先來了解python中的類和對象設計

  • 類:具備相同特徵的一類事物(人,貓,狗)

    寫法:class 類名:3d

         屬性對象

         方法blog

   類的命名: 首字母大寫,以大小寫分割單詞,不使用下劃線。繼承

   定義一個類(以下圖):遊戲

  

   

 

 

  • 對象:具體的某一事物(張三,樓下小黑)

      萬物皆對象

  屬性:用來描述操做對象,屬性名首字母小寫,以大寫字母分割單詞

  建立對象屬性(以下圖):

  

而後來了解面向對象的三大特徵:

  • 繼承

     ----單繼承

     ----多繼承

  • 封裝
  • 多態

 1.繼承:是一種建立新類的方式,在python中,新建的類能夠繼承一個或多個父類,父類有稱爲基類或超類,新建的類稱爲子類或派生類

python中的繼承分爲單繼承和多繼承(以下圖):

 

查看繼承:

SubClass1.__bases__    ----------------__base__只查看從到右繼承的第一個子類,__bases__查看全部繼承的父類

注意:若是沒有指定父類,python的類會默認繼承object類,object是全部python的父類,它提供了一些常見的方法(如__str__)的實現。

 

2.封裝

python的三種封裝寫法:

  • 常規寫法:

    屬性私有 _屬性名稱

  • 調用全局函數property,將set和get傳遞過去:

    對象.屬性名稱

 

 

 

  • 使用annotation(註釋)property;來二次封裝(注意:此處存在一個僞重載):

函數的重載(overload):

  • 函數名稱相同,參數的個數或類型不一樣

    注:python沒有函數重載,由於python是弱數據類型語言

函數的重寫/覆蓋(override):

  • 是指面向對象的繼承中,子類繼承了父類的方法,可是不知足子類的需求,從而從新覆蓋父類的現象

 

3.多態

  • 父類引用指向子類實例的現象,叫作多態

     注意:python 是弱數據語言,弱數據類型語言天生支持多態

相關文章
相關標籤/搜索