乙個類中,假如乙個私有屬性,有兩個方法,乙個是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...