python物件導向基礎(三)

2021-09-14 07:24:28 字數 2688 閱讀 3898

身份運算子用於比較兩個物件的記憶體位址是否一致 ——是否是對同乙個物件的引用

運算子描述

例項is

is 是判斷兩個識別符號是不是引用同乙個物件

x is y,類似 id(x) == id(y)

is not

is not 是判斷兩個識別符號是不是引用不同物件

x is not y,類似 id(a) != id(b)

is用於判斷兩個變數 引用物件是否為同乙個

==用於判斷引用變數的值是否相等

>>

> a =[1

,2,3

]>>

> b =[1

,2,3

]>>

> b is a

false

>>

> b == a

true

應用場景

定義方式

例:

class women:

def __init__(self, name):

self.name = name

# 不要問女生的年齡

self.__age = 18

def __secret(self):

print("我的年齡是 %d" % self.__age)

xiaofang = women("小芳")

# 私有屬性,外部不能直接訪問

# print(xiaofang.__age)

# 私有方法,外部不能直接呼叫

# xiaofang.__secret()

python中,並沒有真正意義私有

物件導向三大特性

封裝根據職責屬性方法封裝到乙個抽象的

繼承實現**的重用,相同的**不需要重複的編寫

多型不同的物件呼叫相同的方法,產生不同的執行結果,增加**的靈活度繼承的概念子類擁有父類的所有方法屬性

1) 繼承的語法

class 類名(父類名)

:pass

2) 專業術語

父類是子類的基類,子是父類的派生類,子類從父類派生

3) 繼承的傳遞性

子類擁有父類以及父類的父類中封裝的所有屬性方法

提問

哮天犬能夠呼叫cat類中定義的catch方法嗎?

答案

不能,因為哮天犬cat之間沒有繼承關係

應用場景

[外鏈轉存失敗(img-sosgbsnn-1564543542456)(assets/012_繼承方法的重寫.png)]

重寫父類方法有兩種情況:

覆蓋父類的方法

對父類方法進行擴充套件

1) 覆蓋父類的方法

具體的實現方式,就相當於在子類中定義了乙個和父類同名的方法並且實現

重寫之後,在執行時,只會呼叫子類中重寫的方法,而不再會呼叫父類封裝的方法

2) 對父類方法進行擴充套件

就可以使用

擴充套件的方式

在子類中重寫父類的方法

在需要的位置使用super().父類方法來呼叫父類方法的執行

**其他的位置針對子類的需求,編寫子類特有的**實現

關於super

呼叫父類方法的另外一種方式(知道)

python 2.x時,如果需要呼叫父類的方法,還可以使用以下方式:

父類名.方法(self)
提示

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

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

python基礎複習(三)物件導向

為什麼使用物件導向?物件導向是將資料和函式繫結進行封裝,提高 的重複利用率,以此提高開發效率。提高復用性 提高開發效率類 類是對一類事物的描述物件 物件是具體的事物,可以直接使用的二者關係 類是物件的模板,物件是類的例項體現類的構成 類名 屬性 方法類的屬性 類屬性 例項屬性 self 私有屬性1....

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

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