Python基礎班每日整理(五)
阿新 • • 發佈:2018-07-02
承擔 類的屬性 設計 orien 字符 day01 列表 核心 python 03_面向對象_day01
- 面向對象的簡稱?
面向對象編程 —— Object Oriented Programming 簡寫 OOP,是一種編程思想或者方式 - 面向對象和面向過程的區別?
面向過程是早期的一個編程思想,所有的步驟從頭到尾逐步實現,把某些功能獨立的代碼塊封裝成函數,然後順序的調用不同的函數,註重步驟與過程,不註重職責分工,適合開發簡單的項目。
面向對象相比函數是一個更大的封裝,面向對象註重對象和職責,不同的對象承擔不同的職責,適合開發比較復雜的項目。 - 類和對象的概念?
類和對象是面向對象的兩大核心概念,
類是對一群具有相同特征或者行為的事物的一個統稱,是抽象的,不能直接使用。就好比圖紙或者模板,根據這個模板可以創建很多個對象 - 類和對象的關系?
類是模板,對象是根據類這個模板創建出來的,應該 先有類,再有對象
類只有一個,而對象可以有很多個,不同的對象之間屬性可能會各不相同
類中定義了什麽屬性和方法,對象中就有什麽屬性和方法,不可能多,也不可能少 - 屬性和方法是什麽?
對對象的特征描述,通常可以定義成屬性
對象具有的行為(動詞),通常可以定義成方法 - 如何定義類並創建對象?
class 類名:
def 方法1(self, 參數列表):
pass
類名符合大駝峰命名,方法第一個參數必須是self,self 就表示 當前調用方法的對象自己在方法內部,可以通過 self. 訪問對象的屬性,也可以通過 self. 調用其他的對象方法
對象變量 = 類名() 自動分配內存空間,自動初始化方法(定義屬性) - init()方法的作用
初始化方法,在對象創建的時候會自動執行,主要用來定義類的屬性 - str()方法的作用
返回對象的描述信息,print 函數輸出對象變量時,能夠打印自定義的內容,必須返回字符串 - del()方法的作用
對象被從內存中銷毀前,會被自動調用 - 面向對象的三大特點
封裝、繼承、多態 - 如何理解面向對象的封裝?
面向對象編程的第一步,就是要把屬性和方法封裝到類中,外界使用類創建對象,然後讓對象調用方法,對象方法的細節都封裝在類的內部。
03_面向對象_day02 - 私有屬性、私有方法;偽私有屬性和方法
私有屬性:對象不希望公開的屬性,語法是在屬性前面加上屬性名
偽私有屬性和方法是指在Python中並沒有真正意義上的私有,而是把屬性或者方法名前面加上了_類名,可以通過_類名__屬性名的形式訪問,但是不推薦。 - 繼承的作用,以及語法
繼承實現了代碼的重用,子類可以擁有父類的所有方法和屬性。
class 子類名(父類名):
pass
繼承具有傳遞性,子類可以擁有所有與子類有繼承關系的父類方法和屬性。 - 重寫父類方法,如何調用重寫的父類方法?
當父類的方法實現不能滿足子類需求時,可以對方法進行重寫(override)
重寫父類方法有兩種情況:
覆蓋父類的方法,子類中創建一個跟父類同名的方法;
對父類方法進行擴展,使用super().父類方法調用,另外可以通過父類名.父類方法()的形式去訪問,但是不推薦。 - 多繼承的概念以及語法
多繼承:子類可以擁有多個父類,並且具有所有父類的屬性和方法。多個父類之間應盡量避免同名的方法和屬性。
class 子類名(父類名1, 父類名2...)
pass - 多態的概念。
不同的子類對象調用相同的父類方法,產生不同的執行結果
多態可以增加代碼的靈活度,以繼承和重寫父類方法為前提,是調用方法的技巧,不會影響到類的內部設計
Python基礎班每日整理(五)