Python學習--類和對象

來源:互聯網
上載者:User

標籤:特性   strong   必須   自身   iss   nbsp   type   程式   port   

一、幾個概念

類:代表對象的集合。

對象:對象包括特性和方法。特性只是作為對象的一部分的變數,方法則是儲存在對象內部的函數。所有對象都屬於某一個類,稱為類的執行個體。

方法:綁定到對象特性上面的函數稱為方法。

封裝:指向程式中的其他部分隱藏對象的具體實現細節的原則。

繼承:一個類可以使一個或者多個類的子類。子類繼承超類的所有方法,

子類:當一個對象所屬的類是另外一個對象所屬類的子集時,前者就被稱為後者的子類,後者就是前者的的超類。

 

二、類

2.1 建立類

在建立類之前,先說兩個概念。

新式類:建立新式類建立必須有一個父類,如果不指定,預設就是繼承object。

舊式類:沒有父物件的的類。

在Python3.0以後不存在舊式類,之前的版本,建立類的時候就需要指明繼承新式類,在模組或者指令碼開始的地方加上__metaclass__ = type。

 

class ClassName:      ‘類的協助資訊‘ #類文檔字串       class_suite #類體

 

1.通過class語句可以建立一個類。

2.和定義函數類似,可以在類名下面加上關於類的協助資訊,通過ClassName.__doc__查看。

 

2.2 self說明

類的方法與普通的函數只有一個特別的區別——它們必須有一個額外的第一個參數名稱, 按照慣例它的名稱是 self。

class test:   def fun1(self):      xxxx   def fun2(self, par1, par2):      xxxx

 

self代表的是對象自身,當然你可以取名不叫self,其它命名也可以。通過self,其它成員方法就可以訪問要對其特效進行操作的對象本身了。

 

在調用方法時,無需顯示的提供self這個參數。

 

2.3 私人化

為了讓方法或者特性變成私人(從外部無法訪問),只要在它的名字前面加上雙底線即可。

class Test:    def __fun1(self):       xxxx    def fun2(self):       self.__fun1()

如上述例子所示,__fun1從外界無法訪問,但是在類的內部還是能使用。但是這個並不是真的無法訪問,因為帶雙底線的名字被_Test_fun1的形式。所以通過test._Test_fun1()形式還是能訪問。

前面帶有底線的名字不會被帶星號的import語句(from module import *)匯入。

 

2.4 指定超類

class Test(object):    xxxx

將其他類名寫在class語句後面的圓括弧裡就可以指定超類。繼承了超類會繼承相應的方法,當然子類也可以重寫,在子類裡,和超類裡同名的方法就會重寫超類的方法。

 

issubclass(子類名,父類名)

可以檢查一個類是否是另外一個的子類。

 

當然也可以通過屬性__bases__去查看類的基類

isinstance(對象名,類名)

可以檢查一個對象是否是一個類的執行個體

 

可以通過屬性__class__查看對象屬於哪個類

 

子類也可以繼承多個超類,這叫多重繼承。

class Test(object1,object2):    xxxx

 

值得注意的是,當繼承的多個超類裡含有名字相同的方法,先繼承的類中的方法會重寫後繼承的勒種的方法。

?

Python學習--類和對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.