Python中的類(一),Python類(

來源:互聯網
上載者:User

Python中的類(一),Python類(
Python中的類(一)一、 應用情境

如果多個函數中有一些相同的參數時,轉換成物件導向。

二、 如何建立類

類是用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的執行個體。

Class 類名:

       Pass

三、 類變數

類變數在整個執行個體化的對象中是公用的。類變數定義在類中且在函數體之外。類變數通常不作為執行個體變數使用。

四、 建立類中的方法

方法是類中定義的函數。

1、普通法

Obj = 類名 ()

Obj . 普通方法名

2、設定初始化(構造方法、封裝特性)

由於類可以起到模板的作用,因此,可以在建立執行個體的時候,把一些我們認為必須綁定的屬性強制填寫進去。通過定義一個特殊的__init__方法,在建立執行個體的時候,就把name,score等屬性綁上去:

class Student(object):

    def __init__(self, name, score):

        self.name = name

        self.score = score

 注意:特殊方法“init”前後有兩個底線!!!

注意到__init__方法的第一個參數永遠是self,表示建立的執行個體本身,因此,在__init__方法內部,就可以把各種屬性綁定到self,因為self就指向建立的執行個體本身。

有了__init__方法,在建立執行個體的時候,就不能傳入空的參數了,必須傳入與__init__方法匹配的參數,但self不需要傳,Python解譯器自己會把執行個體變數傳進去:

>>> bart = Student('Bart Simpson', 59)

>>> bart.name

'Bart Simpson'

>>> bart.score

59

和普通的函數相比,在類中定義的函數只有一點不同,就是第一個參數永遠是執行個體變數self,並且,調用時,不用傳遞該參數。除此之外,類的方法和普通函數沒有什麼區別,所以,你仍然可以用預設參數、可變參數、關鍵字參數和命名關鍵字參數。

五、繼承特性

 繼承是為了使用父類中的方法。

建立執行個體:

class Father():             #父類

          def f1(self):

                 print (‘父法一’)

class Son(Father):             #子類

          def s1(self):

                 print(‘子法一’)

調用:

  • obj=Son()
  • obj.s1()
  • obj.f1()

#執行結果:子法一

                    父法一

當子類中的方法名和父類的方法名一致時(重寫父類的某方法),調用該方法時,執行的是子類中的方法。重寫時,還想要執行父類的方法時可以參照以下方法。

class Father():             #父類

          def f1(self):

                 print (‘父法一’)

class Son(Father):             #子類

          def s1(self):

                 super(Son,self).f1           #參數:子類名,self

                 print(‘子法一’)

#調用

  • obj=Son()
  • obj.s1()

#執行結果:父法一

                    子法一

也可以按照以下方法寫:

class Father():             #父類

          def f1(self):

                 print (‘父法一’)

class Son(Father):             #子類

          def s1(self):

                 Father.f1(self)

                 print(‘子法一’)

#調用

  • obj=Son()
  • obj.s1()

多繼承:

當需要一個子類繼承多個父類時,可以參照以下代碼:

class Father1():           #父類一

          def f1(self):

                 print (‘父類一’)

class Father2():           #父類二

          def f2(self):

                 print (‘父類二’)

class Son(Father1,Father2):              #子類

          def s1(self):

                            print(‘子法一’)

繼承父類的順序是從左至右繼承。即,當繼承的多個父類中有相同名稱的方法,在調用時會執行左側父類的方法,而右側父類的方法則不會執行。這與執行順序有關。當調用子類時,程式會先從子類的方法中匹配,如果子類中沒有則去符類中依次匹配,父類的匹配順序是從左至右。

當多父類繼承共同繼承一個祖先類,而調用的方法在祖先類時,的尋找調用順序如。

當調用父類的方法中又調用了其他方法,則會從子類開始匹配尋找該方法。即使,原先的父類中有該方法,也會從子類尋找。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.