Python基礎語法十六 物件導向程式設計

2021-10-07 23:56:40 字數 1843 閱讀 3423

1)類屬性:

直接定義在類中的變數是類屬性

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

2)物件屬性

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

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

1.查物件.屬性 - 獲取物件中指定屬性對應的值,屬性不存在會報錯

getattr(物件, 屬性名) - 獲取物件指定屬性對應的值,屬性不存在會報錯

getattr(物件, 屬性名, 預設值) - 獲取物件指定屬性對應的值,屬性不存在不會報錯,返回預設值

2.改、增

物件.屬性 = 值 - 當屬性不存在就給物件新增屬性,屬性存在的時候就修改屬性的值

setattr(物件, 屬性, 值)

3.刪del 物件.屬性 - 刪除物件中指定的屬性

delattr(物件, 屬性名) - 刪除物件中指定的屬性

1.module

類屬性:

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

2.class

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

3.name

類.name- 獲取類名

4.dict

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

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

5.doc

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

6.basebases

類.base

獲取當前類的父類

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

7.slots

約束當前元素的數量,如果給類屬性__slots__賦值了,最後結果不再是字典,導致不能使用__dict__

訪問許可權(針對屬性和方法)

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

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

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

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

1.getter和setter的作用

getter - 獲取某個屬性之前想做別的事情,就給這個屬性新增getter

setter - 在給屬性賦值之前想要做別的事情,就給這個屬性新增setter

getter和setter 的新增方法:

1)getter

第一步:在需要新增getter的屬性名前加下劃線

第二步:定義getter對應的函式() 需要@property裝飾器 函式名就是不帶下劃線的屬性名 函式需要乙個返回值

獲取屬性值的通過:物件.不帶_的屬性名 本質就是在呼叫getter對應的函式,取到的屬性值就是函式的返回值

2)setter

如果想要給屬性新增setter,必須先給屬性新增getter

第一步:新增getter

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

第三步:給屬性賦值:物件.不帶下劃線的屬性名 = 值 本質就是在呼叫setter對應的函式

JS基礎入門篇(三十六) 物件導向( 三 )

class es6 中 為 關鍵字用來宣告 乙個 類 1.只能通過new呼叫 2.不存在變數提公升 3.多個方法之間直接書寫,不需要,隔開 4.類的方法是直接定義在類的原型上的 5.定義在類中的方法不可列舉 6.object.keys 和 object.values 下面是詳細解釋 1.只能通過ne...

Python基礎語法十五 re模組和物件導向

compile 正規表示式 編譯正規表示式,建立正規表示式物件 re obj compile r d re obj.fullmatch 234 1.fullmatch 正規表示式,字串 讓整個字串和正規表示式進行匹配 2.match 正規表示式,字串 匹配字串開頭 如果匹配失敗,結果是none,如果...

Java基礎語法(十六)

1.正規表示式的概念與作用 2.正規表示式語法規則 字元類 預定義字元類 邊界匹配器 數量詞 3.正規表示式練習和相關string類的方法 string split string 正則的規則 string replaceall string 正則規則,string 字串 4.正規表示式匹配練習1.毫...