python 物件導向基礎

2021-08-14 23:56:27 字數 1501 閱讀 5206

物件導向:

例項化步驟

呼叫__new__()方法建立例項

__new__()自動從object繼承

呼叫__init__()方法初始化

__init__()方法在類中定義

檢視類說明

類名.__doc__

help(類名)

新式類與經典類

在py2中,預設是經典類,繼承object為新式類

在py3中,統一為新式類

區別:經典類繼承為深度優先,新世類繼承為廣度優先

描述物件特徵

例項屬性

類被例項化後才有屬性

一般在__init__()方法中建立並初始化

直接使用定義即:self.《屬性名》

引用方法:self.《屬性名》

self用來代表類的例項

類屬性類定義後就存在,而且不需要例項化

類屬性使得相同類的不同例項持有相同的變數

私有屬性

不提供限制屬性訪問的關鍵字(無法限制類的各種屬性在類外直接訪問)

使用__開頭的變數加以標誌,只有類物件自己能訪問

使用_開頭的變數名加以標誌,應該只有類物件及其子類能訪問(非強制性)

特殊屬性 dir(類名)可以顯示該類的特殊屬性

__doc__ #文件解釋

__name__ #類名稱

__dict__ #儲存例項屬性的所有屬性名以及值(以字典的形式)

__module__ #類的模組名

__base__ #儲存該類的父類

深入類的屬性

同名的屬性與例項屬性

以例項名.屬性名引用時,優先引用例項屬性

以類名.屬性名引用時,只能引用類屬性

屬性訪問的特殊方法(反射)

主要用具函式

hasattr(obj_name,'屬性名')

setattr(obj_name,'屬性名',『值』)

getattr(obj_name,'屬性名')

屬性包裝

將方法包裝成屬性,以隱藏相關實現

三種屬性操作

可讀:@property

可寫:@.setter

可刪:@.deleter

描述符將實現特殊協議的方法的類作為作為另乙個類的類屬性

用來攔截和控制屬性訪問並可以重複使用

協議方法

__get__()

__set__()

__delete__()

分類資料描述符(實現全部協議)

非資料描述符(實現部份協議)

說明:所有類成員函式都是非資料描述符

同名的例項屬性和非資料描述符訪問優先順序

注意:只能在新式類中使用

__call__()讓類的實列如函式一樣可呼叫

class a:

def __call__(self,val):

print(val+5)

a = a()

print(a(5))#輸出10

python物件導向基礎 python物件導向基礎

面向過程與物件導向 面向過程的程式設計的核心是過程 流水線式思維 過程即解決問題的步驟,面向過程的設計就好比精心設計好的一條流水線,考慮周全什麼時候處理什麼東西。優點 極大降低了寫程式的複雜度,只需要順著要執行的步驟,堆疊 即可。缺點 一套流水線或者流程就是解決乙個問題,牽一髮而動全身。應用場景 一...

Python之物件導向 物件導向基礎

一 面向過程 物件導向對比 1 面向過程 根據業務邏輯從上到下寫壘 2 函式式思想 將某功能 封裝到函式中,日後便無需重複編寫,僅呼叫函式即可 3 物件導向 對函式進行分類和封裝 1 2 3一步一步抽象,函式式是走向物件導向的中間步驟 函式式的應用場景 各個函式之間是獨立且無共用的資料 物件導向程式...

python物件導向基礎

類是例項的模版,例項是根據類建立的乙個具體物件,每個物件都有相同的方法,但是各自的資料不同。如果要讓內部屬性不被外部訪問,可以把屬性的名稱前加上兩個下劃線 在python中,例項的變數名如果以 開頭,就變成了乙個私有變數 private 只有內部可以訪問,外部不能訪問 當子類和父類都存在相同的run...