day17學習筆記(物件導向)

2021-10-07 17:24:57 字數 1359 閱讀 7738

1)類屬性

定義在類中的變數

類屬性的值不會因為物件的不同而不同

2)物件屬性

通過 self.屬性名 = 值 定義在 init 函式中的屬性

物件屬性的值會因為物件不同而不同

物件.屬性 - 獲取物件指定屬性的值

getattr(物件,屬性名) - 獲取物件指定屬性的值

getattr(物件,屬性名,預設值) - 獲取物件指定屬性的值,若不存在,返回預設值

物件.屬性 = 值 - 屬性存在修改,不存在新增

setattr(物件,屬性名,值) - 屬性存在修改,不存在新增

del 物件.屬性 - 刪除物件屬性

delattr(物件,屬性名) - 刪除物件屬性

類.module- 獲取定義類模組的模組名

物件.class- 獲取物件對應的類

類.name- 獲取類的名字

類.dict- 將類轉換為字典(類屬性名作為key,類屬性值作為值)

物件.dict- 將物件轉換為字典(物件屬性名作為key,物件屬性值作為值)

類.doc- 獲取類的說明文件

類.base- 獲取當前類的父類

類.bases- 獲取當前類的所有父類

slots= (物件屬性1,物件屬性2,…) - 約束當前類物件屬性(物件.__dict__無效)

公開的:在類的內部和外部都可以使用,也能被繼承

保護的:在類的內部可以使用,外部不能使用,可以被繼承

私有的:只能在類的內部使用,不能被繼承

python中所有的屬性和方法都是公開的,私有化其實是假的私有化

屬性和方法前加 __

getter:獲取某個屬性前需要新增其他操作,給屬性新增getter

setter:給屬性賦值前需要新增其他操作,給屬性新增setter

1)getter

第一步:需要新增getter的屬性名前加_

第二步:定義getter對應的函式(1.需要@property裝飾器 2.函式名就是不帶_的屬性名 3.函式返回值)

第三部:不帶 _ 獲取屬性值

2)setter(需要與getter同時存在)

第一步:需要新增setter的屬性名前加_

第二步:定義setter對應的函式(1.需要@getter函式名.setter 裝飾器 2.函式名就是不帶_的屬性名 3.需要乙個引數(嘗試賦值),不需要返回值)

第三部:raise 錯誤型別

day17物件導向

1.面向過程程式設計 一遇到問題馬上想到的是怎麼用演算法或者步驟 邏輯 直接解決問題 2.函式式程式設計 一遇到問題馬上想到有沒有乙個函式具有解決這個問題的功能,如果有直接拿過來用,沒有就自己定義乙個 3.物件導向程式設計 遇到問題馬上想到有沒有乙個物件具有解決這個問題的能力,如果有直接拿過來用,沒...

Day17物件導向作業

定義乙個矩形類,擁有屬性 長 寬 擁有方法 求周長 求面積 class rectangle def init self,length,width self.length length self.width width defperimeter self return self.length self...

day17 物件導向作業

定義乙個矩形類,擁有屬性 長 寬 擁有方法 求周長 求面積 class rectangle def init self,length,width self.length length self.width width defperimeter self return self.length 2 se...