標籤:類的繼承 過程 屬性 str 私人方法 自動 包括 物件導向 animal
物件導向技術簡介
- 類(Class): 用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的執行個體。
- 類變數:類變數在整個執行個體化的對象中是公用的。類變數定義在類中且在函數體之外。類變數通常不作為執行個體變數使用。
- 資料成員:類變數或者執行個體變數用於處理類及其執行個體對象的相關的資料。
- 方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋(override),也稱為方法的重寫。
- 執行個體變數:定義在方法中的變數,只作用於當前執行個體的類。
- 繼承:即一個衍生類別(derived class)繼承基類(base class)的欄位和方法。繼承也允許把一個衍生類別的對象作為一個基類對象對待。例如,有這樣一個設計:一個Dog類型的對象派生自Animal類,這是類比"是一個(is-a)"關係(例圖,Dog是一個Animal)。
- 執行個體化:建立一個類的執行個體,類的具體對象。
- 方法:類中定義的函數。
- 對象:通過類定義的資料結構執行個體。對象包括兩個資料成員(類變數和執行個體變數)和方法。
和其它程式設計語言相比,Python 在儘可能不增加新的文法和語義的情況下加入了類機制。
Python中的類提供了物件導向編程的所有準系統:類的繼承機制允許多個基類,衍生類別可以覆蓋基類中的任何方法,方法中可以調用基類中的同名方法。
對象可以包含任意數量和類型的資料。
類定義
class ClassName: <statement-1> . . . <statement-N>
類對象
類對象支援兩種操作:屬性引用和執行個體化。
屬性引用使用和Python中所有屬性引用一樣的標準文法:obj.name
類對象建立後,類命名空間中給所有的命名都是有效屬性名稱。
很多類的傾向於將對象建立為有初始狀態的。因此類可能會定義一個名為_init_()的特殊方法
def __init__(self): self.data = []
類定義了_init_()方法的話,類的執行個體化操作會自動調用_init_()方法 類似於c++中的預設建構函式
self的用法
類的方法與普通函數只有一個特別的區別就是必須要有一個額外的第一個參數名稱,按照慣例它的名稱是self
類的方法
在類的內部,使用def關鍵字來定義一個方法,與一般函數定義不同,類的方法必須包含參數self,且為第一個參數,self代表的是類的執行個體
class Test: def test(self,參數名1,參數名2...)
繼承
python同樣支援類的繼承,定義方法如下
class DerivedClassName(BaseClassName1): <statement-1> . . . <statement-N>,
類屬性與方法
類的私人屬性
__prvate_attrs:兩個底線開頭,聲明該屬性為私人屬性,不能在類的外部使用。在類的內部訪問時self.__private_attrs
類的方法
在類的內部,使用def關鍵字來定義一個方法,與一般函數定義不同,類的方法必須包含self而且為第一個參數self代表的是類的執行個體
類的私人方法
__private_method:兩個底線開頭,也可以使用this,聲明該方法為私人方法,只能在內部調用,不能在類的外部使用
python物件導向