Python初識面向對象?面向對象編程(英語:Object-oriented programming,縮寫:OOP)是種具有對象概念的編程典範,同時也是一種程序開發的抽象方針它将對象作為程序的基本單元,将程序和數據封裝其中,以提高軟件的重用性、靈活性和擴展性,對象裡的程序可以訪問及經常修改對象相關連的數據在面向對象程序編程裡,計算機程序會被設計成彼此相關的對象,接下來我們就來聊聊關于Python初識面向對象?以下内容大家不妨參考一二希望能幫到您!
Python初識面向對象
簡介面向對象編程(英語:Object-oriented programming,縮寫:OOP)是種具有對象概念的編程典範,同時也是一種程序開發的抽象方針。它将對象作為程序的基本單元,将程序和數據封裝其中,以提高軟件的重用性、靈活性和擴展性,對象裡的程序可以訪問及經常修改對象相關連的數據。在面向對象程序編程裡,計算機程序會被設計成彼此相關的對象。
我們之前學習的編程方式就是面向過程的,面相過程和面相對象,是兩種不同的編程方式,對比面向過程的特點,可以更好地了解什麼是面向對象。
特點面向過程- 注重步驟與過程,不注重職責分工
- 如果需求複雜,代碼會變得很複雜
- 開發複雜項目,沒有固定的套路,開發難度很大!
- 注重對象和職責,不同的對象承擔不同的職責
- 更加适合應對複雜的需求變化,是專門應對複雜項目開發,提供的固定套路
- 需要在面向過程基礎上,再學習一些面向對象的語法
相比較函數,類是更大的封裝,根據職責在一個對象中封裝多個方法。在完成某一個需求前,首先确定職責要做的事情(方法),根據職責确定不同的對象,在對象内部封裝不同的方法(多個)。最後完成的代碼,就是順序地讓不同的對象調用不同的方法
類和對象類是對一群具有相同特征或者行為的事物的一個統稱,是抽象的,不能直接使用。特征被稱為屬性,行為被稱為方法。
對象是由類創建出來的一個具體存在,可以直接使用。由哪一個類創建出來的對象,就擁有在哪一個類中定義的屬性和方法。
關系類是模闆,對象是根據類這個模闆創建出來的,應該先有類,再有對象。類隻有一個,而對象可以有很多個。不同的對象之間屬性可能會各不相同。類中定義了什麼屬性和方法,對象中就有什麼屬性和方法,不可能多,也不可能少。
類的設計在使用面相對象開發前,應該首先分析需求,确定一下,程序中需要包含哪些類!
在程序開發中,要設計一個類,通常需要滿足一下三個要素:
- 類名這類事物的名字,滿足大駝峰命名法
- 屬性這類事物具有什麼樣的特征
- 方法這類事物具有什麼樣的行為
大駝峰命名法:每一個單詞的首字母大寫且單詞與單詞之間沒有下劃線,如ClassName。
類名名詞提煉法分析整個業務流程,出現的名詞,通常就是找到的類
屬性和方法- 對對象的特征描述,通常可以定義成屬性
- 對象具有的行為(動詞),通常可以定義成方法
需求中沒有涉及的屬性或者方法在設計類時,不需要考慮
定義簡單的類定義一個隻包含方法的類語法格式如下:
class 類名:
def 方法1(self, 參數列表):
pass
def 方法2(self, 參數列表):
pass
方法的定義格式和之前學習過的函數幾乎一樣,區别在于第一個參數必須是self,暫時先記住,稍後介紹 self
創建對象當一個類定義完成之後,要使用這個類來創建對象,語法格式如下:
對象變量 = 類名()
由哪一個對象調用的方法,方法内的 self 就是哪一個對象的引用
在面向對象開發中,引用的概念是同樣适用的。使用類創建對象之後,對象的變量中仍然記錄的是對象在内存中的地址,也就是對象的變量引用了新建的類對象。使用 print 輸出對象變量,默認情況下,是能夠輸出這個變量引用的對象是由哪一個類創建的對象,以及在内存中的地址(十六進制表示)
在類封裝的方法内部,self 就表示當前調用方法的對象自己。調用方法時,程序員不需要傳遞self參數。
在方法内部,可以通過 self. 訪問對象的屬性,也可以通過 self. 調用其他的對象方法。
在類的外部,通過 變量名. 訪問對象的屬性和方法,在類封裝的方法中,通過 self. 訪問對象的屬性和方法。
初始化方法當使用 類名() 創建對象時,會自動執行以下操作:
- 為對象在内存中分配空間 —— 創建對象
- 為對象的屬性設置初始值 —— 初始化方法(init)
初始化方法就是 __init__ 方法,__init__ 是對象的内置方法,__init__ 方法是 專門用來定義一個類具有哪些屬性的方法
在 __init__ 方法内部使用 self.屬性名 = 屬性的初始值 就可以定義屬性,定義屬性之後,再使用類創建的對象,都會擁有該屬性。
内置方法和屬性__del__方法當使用 類名() 創建對象時,為對象分配完空間後,自動調用 __init__ 方法,當一個對象被從内存中銷毀前,會自動調用 __del__ 方法。
__str__方法如果在開發中,希望使用 print 輸出對象變量時,能夠打印自定義的内容,就可以利用__str__這個内置方法了
__str__ 方法必須返回一個字符串
,