Python自學筆記(6) 物件導向程式設計

2021-09-25 20:23:18 字數 1438 閱讀 1769

物件導向內容不多,也相對簡單,但很重要,學透學懂很關鍵。

物件導向

物件:使用者所建立的 特徵:動作或功能放在一起就是乙個物件

物件如何建立?在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 例如一輛...