python 高階 Property 的使用

2022-02-01 19:47:05 字數 1298 閱讀 1478

乙個類中,假如乙個私有屬性,有兩個方法,乙個是getnum , 乙個是setnum 它,那麼可以用 property 來使這兩個方法結合一下,比如這樣用  num = property(getnum, setnum) 

那麼 如果建立乙個物件 t = test() ,   t.num  這樣就相當於呼叫了 getnum 方法,  t.num = 100 這樣就相當於呼叫了 setnum 方法 ,例如:

class test(object

): def __init__(self):

self.__num = 0

def getnum(self):

print(

'----get----')

return

self.__num

def setnum(self, newnum):

print(

'----set----')

self.__num =newnum

num =property(getnum, setnum)

t =test()

t.num = 100

print(t.num)

>>>----set----

----get----

100

當然,一般在使用property的時候,都會用裝飾器的方法使用它,因為這樣看起來更加簡單:

class test(object

): def __init__(self):

self.__num = 0

@property

def num(self):

print(

'----get----')

return

self.__num

@num.setter # 兩個方法名要相同,用 方法名.setter 宣告設定它的方法.

def num(self, newnum):

print(

'----set----')

self.__num =newnum

t =test()

t.num = 100

print(t.num)

>>>----set----

----get----

100

這樣上面兩個方法就可以用相同的名字,而編譯器會在 t.num 這種取值操作的時候呼叫 用 @property 裝飾的方法 , 在 t.num=100 這種賦值操作的時候呼叫 用 @num.setter 裝飾的方法.

這樣的作用就相當於把方法進行了封裝,以後使用起來會更加方便.

Python 今天抽空學習了 Property

1 property使方法像屬性一樣呼叫 property可以把乙個例項方法變成其同名屬性,以支援.號訪問,它亦可標記設定限制,加以規範 2 property成為屬性函式,可以對屬性賦值時做必要的檢查,比如在setter方法裡加過濾判斷條件。3 顯得相對簡潔一些,相比自定義的get和set方法,pr...

Uiautomator讀取properties檔案

1.建立assets資料夾 工程上右鍵new folder assets folder 2.在assets資料夾中建立prop檔案 在assets資料夾中右鍵new file,輸入名稱 prop 3.在prop檔案中新增引數,格式為 key value 如 time 100 name qq 4.封裝...

properties檔案與Properties類

當我們寫乙個簡單程式 例如圖書管理 快遞管理等 時,經常會有一些困擾,我們上一次錄入的物件資訊,下一次都不能儲存。在我們學習了檔案的io操作後,也許可以將這些資訊寫入檔案中,下一次執行程式時就可以載入資料。這些資訊的儲存有一些成熟的格式,比如說xml,json等,我們先來學習一下.propertie...