建立自定義物件
物件:一系列資料(屬性)以及一套訪問和操作這些資料的方法。
多型:可對不同型別的物件執行相同的操作
封裝:對外部隱藏有關物件工作原理的細節
繼承:可基於通用類建立出專用類
即便你不知道變數指向的是哪種物件,也能夠對其執行操作,且操作的行為將隨物件所屬的型別(類)而異。
與物件屬性相關聯的函式稱為方法。
屬性是歸屬於物件的變數
屬性描述物件的狀態
屬效能被物件的方法修改
總結:物件將一系列函式(方法)組合起來,並賦予它們訪問一些變數(屬性)的許可權,而屬性可用於在兩次函式呼叫之間儲存值。
子類具有父類的所有屬性和方法,且其或有易於父類的屬性和方法
類——一種物件。
每個物件都屬於特定的類,並被稱為該類的例項。
類由其支援的方法定義。
子類(subclass)
超類(superclass)
方法(關聯的方法)將其第乙個引數(self)關聯到它所屬的例項,因此無需提供這個引數。
要讓方法或屬性稱為私有的(不能從外部訪問),只需讓其名稱以兩個下劃線打頭即可。
私有屬性不能從物件外部訪問,而只能通過訪問器方法(如get_name和set_name)來訪問。
注意:
在類定義中,對所有以兩個下劃線打頭的名稱都進行轉換,即在開頭加乙個下劃線和類名,就能從類外訪問私有方法。
如果你不希望名稱被修改,又想發出不要從外部修改屬性或訪問方法的訊號,可用乙個下劃線打頭,這是乙個約定。
在class語句中定義的**都是在乙個特殊的命名空間(類的命名空間)內執行,而類的所有成員都可訪問這個命名空間。
要指定超類,可在class語句中的類名加上超類名,並將其用圓括號括起。
要討論乙個類是否是另乙個類的子類,可使用內建方法issubclass
要確定物件是否是特定類的例項,可使用isinstance
如果你想要獲悉物件屬於哪個類,可使用屬性__class__
type(s)也可以獲悉其所屬的類
多重繼承。
多個超類的超類相同時,查詢特定方法或屬性時訪問超類的順序稱為方法解析順序(mro)。
一種常見的做法是使用乙個核心超類以及乙個或多個混合超類。
物件遵循特定的介面(即實現特定的方法)
python通過引入模組abc為所謂的抽象基類提供支援。
1、將有關問題的描述(程式需要做什麼)記錄下來,並給所有的名稱、動詞和形容詞加上標記
2、在名詞中找出可能的類
3、在動詞中找出可能的方法
4、在形容詞中找出可能的屬性
5、將找出的方法和屬性分配給各個類
1、記錄(或設想)一系列用例。
2、透徹而仔細地考慮每個場景,確保模型包含了所需的一切。
Python類和物件
1 建立類 語法 class classname 類的幫助資訊 類文件字串 class suite 類體 例如 class employee 所有員工的基類 empcount 0 def init self,name,salary self.name name self.salary salary ...
Python類和物件
python類和物件 類 具有相同的屬性和方法的物件的集合。物件 萬物皆物件。類和物件的關係 類是具有相同屬性方法物件的集合。類包含屬性和方法 語法 class 類名 屬性 方法定義乙個類 建立物件 屬性寫在類外的情況,就是通過物件,屬性,物件,方法的方式呼叫。屬性相對於類來說屬於全域性,每個方法都...
Python類和物件
類和物件 類 class 用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類 的例項。方法 類中定義的函式。類變數 類變數在整個例項化的物件中是公用的。類變數定義在類中且在函式體之外。類變數通常不作為例項變數使用。方法重寫 如果從父類繼承的方法不能滿足子類...