千鋒學習第十八天和十九天 物件導向

2021-10-25 06:34:35 字數 3355 閱讀 5299

物件屬性的增刪改查

查 - 獲取物件屬性的值

物件.屬性

getattr(物件, 屬性名)

增/改

```

物件.屬性 = 值

setattr(物件, 屬性名, 值)

```3. 刪除

```del 物件.屬性

delattr(物件, 屬性名)

```

類方法和靜態方法

1)物件方法

怎麼定義:直接定義

怎麼呼叫:物件.方法名()

特點:self

什麼時候用:如果實現函式的功能需要用到物件屬性,那麼這個函式就定義成物件方法

2)類方法

怎麼定義:在定義函式前加裝飾器@classmethod

怎麼呼叫:類.方法名()

特點:有個預設引數cls,這個引數在呼叫的時候不用傳參,系統會自動將當前類傳給cls

什麼時候用:實現函式的功能在不需要物件屬性的前提下要類就使用類方法

3)靜態方法

怎麼定義:在定義函式前加裝飾器@staticmethod

怎麼呼叫:類.方法名()

特點:沒有預設引數(相當於類中的普通函式)

什麼時候用:實現函式的功能在不需要物件屬性的前提下不要類就使用靜態方法

內建類屬性

class

person

:"""

人類"""

num =

61def

__init__

(self, name=

'張三'

, age=

18, gender=

'男')

: self.name = name

self.age = age

self.gender = gender

defeat(self, food=

'麵條'):

print

(f'再吃'

) @classmethod

defmessage

(cls)

:print

(f'人類目前的數量是'

) @staticmethod

defdestroy()

:print

('人類破壞環境!'

)p1 = person(

)# 1.類.__doc__ - 獲取類的說明文件

print

(person.__doc__)

# 2.lei.__module__ - 獲取指定類所在

print

(person.__module__)

# __main__

# 3.物件.__class__ - 獲取指定物件對應的型別,和type(物件)功能一樣

print

(p1.__class__)

# # 4.類.__name__ - 獲取類名

print

(person.__name__)

# person

# 5.

# 類.__dict__ - 將類轉換成字典,key是欄位名,值是字段對應的值

# 物件.__dict__ - 將物件轉換成字典,物件屬性名作為key,屬性值作為value

print

(person.__dict__)

# 6.

# 類.__base__ - 獲取指定類的父類

# 類.__bases__ - 獲取指定類所有的父類

# object是python中所有類的基類

print

(person.__base__)

#

getter和setter

1) getter:

什麼時候用:在獲取物件屬性前,如果要別的什麼事情,就可以給這個屬性新增getter

怎麼用:

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

第二步:在裝飾器@property後面定義乙個函式:

函式名就是屬性名去掉_

函式沒有引數,需要乙個返回值(返回值就是獲取這個屬性真正得到的結果)

第三步:通過物件獲取屬性的時候不需要_

2)setter - 新增setter之前必須先新增getter

a.什麼時候用:如果要再給某個物件屬性賦值之前做別的什麼事情,就給這個屬性新增setter

b.怎麼用:

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

第二步:在裝飾器@getter名.setter後面定義乙個函式:

函式名就是屬性名去點_

函式有乙個引數(這個引數指向的時候賦值的時候賦的值,)沒有返回值

第三步:通過物件獲取屬性的時候不需要_

訪問許可權

1)三種訪問許可權

公開的:公開的屬性和方法在類的內部、外部都可以用,並且可以被繼承

保護的:保護的屬性和方法在類的內部可以用,外部不能用,但是可以繼承

私有的:私有的屬性和方法在內的內部可以用,外部不能用,不能被繼承

python中屬性和方法只有一種訪問許可權:公開的,所謂的私有化其實是假的

私有化的方法:在屬性名和方法名前加__(注意:只能是兩個__開頭,不能再用__結尾)

運算子

python在使用運算子的時候本質實在呼叫運算子對應的方法,每個運算子對應的方法是固定的;

不同型別的資料在引數相同的運算子的時候,會呼叫不同類中對應方法

某個型別的資料是否支援某種運算,就看這個資料對應的型別中有沒有實現這個運算子對應的方法

繼承

什麼是繼承

繼承是讓子類直接擁有父類的屬性和方法的過程

字類 - 繼承者

父類 - 被繼承者(又叫超類)

怎麼繼承

class 字類(父類1,父類2,...):

類的說明文件

類的內容

說明:1)預設情況下,類繼承自object:

class 類名: == class 類名(object):

2)python中的類支援多繼承

繼承可以讓子類直接擁有父類所有的屬性和方法

怎麼在子類新增內容

1)新增類屬性和方法

直接在字類中定義

2)新增物件屬性

需要在字類的__init__方法中通過supper()去呼叫父類的__init__方法

注意:supper()只能在物件方法和類方法中使用

linuxC學習第十八天

int main int count 0 int length 0 int i,t 0 while 1 break case 3 刪除資訊 printf 刪除第幾個 n scanf d t for i t i length i length break default 無效的按鍵 printf 無效...

學習python 第十八天

併發程式設計 python中實現併發程式設計的三種方案 多執行緒 多程序和非同步i o。併發程式設計的好處在於可以提公升程式的執行效率以及改善使用者體驗 程序和執行緒的區別和聯絡 程序 作業系統分配記憶體的基本單位 乙個程序可以包含乙個或多個執行緒 執行緒 作業系統分配cpu的基本單位 併發程式設計...

JAVA學習第十八天

今天學習的主要內容是正規表示式 一 使用場景 1 網頁上使用者輸入資料的時候,用於格式校驗,例如 身份證,郵箱,號碼,手機號碼,使用者名稱 登入名,密碼 2 用於與第3方系統進行資料格式校驗,因為第3方的系統不一定給你的資料,就是符合你要求的資料 3 用於從資料庫中匹配符合格式的資料 二 正規表示式...