15 Python物件導向

2021-10-22 14:31:10 字數 1820 閱讀 7926

2、物件導向程式設計的主要概念

3、物件導向設計原則

本文主要介紹物件導向程式設計的主要概念以及物件導向設計原則。

在進行開發的時候經常會提到物件導向,在物件導向的世界引入了物件的概念,物件既有屬性又有對應的過程,這裡的屬性通常就是指我們的資料成員,過程就是指我們的成員函式,函式的作用就是處理屬性。

在python開發中一切皆物件。每個類的例項或變數都有對應的記憶體位址,物件就是類的例項。

物件可以描述為:

類是用來表示現實世界實體的一種方式,具有以下特點:

方法定義了物件的行為,具體特點可以描述為一下幾點:

在python3中建立類和物件的例子(以 person 為例):

class

person

(object):

def__init__

(self, name, age)

: self.name = name

self.age = age

def(self)

:return

f'已經

歲了, 他可以吃蘋果了'

物件導向程式設計的主要的特性相信很多人都是耳熟能詳的:封裝、多型、繼承、抽象、組合。有些時候有的地方介紹物件導向特性的時候還會有組合的概念。

封裝的特點如下:

多型的特點如下:

python中的多型,可以說是內建的功能,用最常見的 『+』 運算子來說,當 『+』 作用於兩個正數可以進行加法運算,但是作用於兩個字串物件就是對兩個字串進行拼接。

# 簡單的demo, 直觀的感受下

demo_int1 =

1demo_int2 =

2result_int = demo_int1 + demo_int2 # 3

demo_str1 =

'hello '

demo_str2 =

'***x'

result_str = demo_str1 + demo_str2 # hello ***x

繼承是物件導向物件程式設計中經常要用的,在我曾經重構的專案中,公司建模搞出來的繼承曾將我按在地上狠狠摩擦 (ㄒoㄒ)。

# 簡單的乙個繼承的demo

classa(

object):

defa

(self)

:print

('a'

)class

b(a)

:def

b(self)

:print

('b'

)

抽象的主要特徵如下:

組合就是指:

開放/封閉原則規定,類或物件及其方法對於擴充套件來說是開放的,但是對於修改來說,應該是封閉的。在開發時使用通用的方式來編寫類或模組,以便需要擴充套件類或物件行為的時候不必修改類本身。

開放封閉原則的優點:

控制反轉原則是指,高層級的模組不應該依賴於底層級的模組,他們都應該依賴於抽象。細節應該依賴於抽象,而不是抽象依賴於細節。該原則建議任何兩個模組之間不應以緊密方式相互依賴。基本模組和從屬模組應當在他們之間提供乙個抽象層來耦合。

控制反轉的原則優點如下:

介面隔離原則規定,客戶端不應該依賴於他們不需要使用的介面。

介面隔離原則的優點如下:

單一職責原則要求:類的職責單一,引起類變化的原因單一。

在開發中乙個類應該是提供特定的功能服務。如果乙個類實現了兩個不同的功能,最好進行拆分。

單一職責的優點:

替換原則講的是:派生類必須能夠完全取代基類。派生類必須擴充套件基類,並且派生類應該盡可能的對基類封閉,可以無需修改任何**去替換基類。

15 Python 物件導向

物件導向 oop 是一種對現實世界理解和抽象的方法,物件的含義是指在現實生活中能夠看得見摸得著的具體事物,一句比較經典的描述是一切皆物件,python 是一門物件導向的語言,物件導向程式設計簡單來說就是一種封裝 的方式。物件導向相關概念 1.類 python 中類的定義使用 class 關鍵字 cl...

1 5 Python內建函式

如果你熟悉 shell 程式設計,了解什麼是 shell 內建命令,那麼你也很容易理解什麼是 python 內建函式,它們的概念是類似的。將使用頻繁的 段封裝起來,並給它起乙個名字,以後使用的時候只要知道名字就可以,這就是函式。函式就是一段封裝好的 可以重複使用的 它使得我們的程式更加模組化,不需要...

15 python迴圈語句(else)

1.概念 迴圈可以和else配合使用,else下方縮排的 表示當迴圈執行結束之後要執行的 2.案例 i 1while i 5 print 寶寶我錯了 i 1else print 寶寶原諒我了,寶寶真好 3.else中的break和continue i 1while i 5 print 寶寶我錯了 i...