物件導向內容不多,也相對簡單,但很重要,學透學懂很關鍵。
物件導向
物件:使用者所建立的 特徵:動作或功能放在一起就是乙個物件
物件如何建立?在python中物件是通過類來建立的,類是通過物件的描述
class
car:
def fly(self):
pass
類與物件的關係:
類是型別,類別,對事物的描述
物件是個體
具體的,某乙個東西或者物件
建立物件:
類名() 例項化
三大特徵:
1, 封裝:將資料或者方法封裝在乙個類中
2, 繼承:子類可以自動呼叫父類除了私有方法中的全部內容,包括抽象方法
3, 多型:同乙個物件,多種形態
成員:1. 變數
例項變數:物件擁有的東西
類變數:類擁有的東西,多個物件共享的。最好就是類名去訪問類變數。物件可以訪問,但不能修改。
2.方法:
例項方法: def 方法(self): pass
靜態方法:@staticmethod def 方法(self) 最好類名去訪問
類方法:@classmethod def 方法(cls)
3.屬性
用方法來描述屬性資訊
類與類之間的關係
依賴關係: 關係最弱
在方法的引數中傳遞其他類的物件
關聯關係:組合,聚合 關係很緊密
把乙個物件裝在自己身上
繼承關係:實現關係
class 子類(父類):
pass
父類:基類,超類
子類:派生類
實現關係:
父類:抽象類。如果父類是抽象方法,父類被稱為「介面」
子類:必須對父類的抽象方法重寫
約束:
父類對子類的約束。子類必須重寫的內容
拋異常:raise notimplementerror
抽象類:
from abc import abcmeta,abcstractmethod
元類必須設為abcmeta,metaclass = abcmeta
這個類必須可以重寫抽象方法。@abstractmethod
類中包括抽象方法。那麼這個類一定是抽象類。抽象類一般不建立物件
mro:
經典類採用的是深度優先遍歷。
新式類如果沒有菱形,就是深度優先。
如果是簡單菱形繼承,把頭乾掉。使用深度優先,最後是頭。
如果是複雜的菱形採用c3演算法。先找到每個類的繼承關係,先拆分,然後再合併。
super:
執行mro列表中的下乙個類中的方法。
super().方法(
) super(類名,self).方法()
Python物件導向自學(一)
1.定義乙個類 class demo 表示繼承時有括號 pass這樣就簡單定義出乙個類 2.根據類例項化乙個物件 class demo 表示繼承時有括號 pass one demo one就是根據demo這個類建立出來的乙個物件3.增加訪問屬性 一 直接通過物件動態新增 class demo 表示繼...
(自學)物件導向
物件導向設計原則 敏捷軟體開發 摘抄自 敏捷軟體開發 原則 方法與實踐 robert c.martin 1 srp 單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因。職責即為 變化的原因 2 ocp 開放封閉原則 軟體實體 類 模組 函式等 應該是可以擴充套件的,但是不可修改。對於擴充套件是...
自學物件導向
物件導向程式設計 oop,object 物件 oriented 面向 programming 程式設計 是將現實世界中的概念模擬到電腦程式中,它將現實世界中的所有事物視為物件。萬物皆物件 類為產品的藍圖,物件為乙個產品。blueprint manufacture new blueprint 例如一輛...