1.property屬性:
是乙個提高開發者使用者體驗度的屬性,可以將乙個函式改造的像屬性一樣。
例:
# 定義的時候像是乙個函式 使用的時候和屬性的方式是以樣的
class
foo(object):
@property
defmoney
(self):
return
100# f = foo()
# m = f.money()
# print(m)
f = foo()
print(f.money)
執行結果:
2.property簡單應用:
例:根據當前頁數和每頁顯示資料條數,計算出該頁起始編號和結尾編號
class
pager:
def__init__
(self, current_page):
# 使用者當前請求的頁碼(第一頁、第二頁...)
self.current_page = current_page
# 每頁預設顯示100條資料
self.per_items = 100
@property
defstart
(self):
val = (self.current_page - 1) * self.per_items + 1
return val
@property
defend
(self):
val = self.current_page * self.per_items
return val
p = pager(2)
print(p.start)
print(p.end)
執行結果:
3.裝飾器方式:在方法上應用裝飾器
三種@property裝飾器:
class
goods:
@property
defprice
(self):
print('@property')
@price.setter
defprice
(self, value):
print('@price.setter')
@price.deleter
defprice
(self):
print('@price.deleter')
# ############### 呼叫 ###############
obj = goods()
obj.price # 自動執行 @property 修飾的 price 方法,並獲取方法的返回值
obj.price = 123
# 自動執行 @price.setter 修飾的 price 方法,並將 123 賦值給方法的引數
del obj.price # 自動執行 @price.deleter 修飾的 price 方法
例:class
goods
(object):
def__init__
(self):
self.org_price = 1000
# **
self.discount = 0.7
# 折扣
@property
defprice
(self):
val = self.org_price * self.discount
# 返回***折扣
return val
@price.setter
defprice
(self, new_val):
# 接收val,將**修改為val
self.org_price = new_val
@price.deleter
defprice
(self):
# 將折扣修改為1(刪掉折扣)
self.discount = 1
g = goods()
print(g.price)
g.price = 2000
print(g.price)
del g.price
print(g.price)
執行結果:
4.類屬性方式:在類中定義值為property物件的類屬性
屬性名 =property(獲取, 修改, 刪除, 備註)
例:
class
goods
(object):
def__init__
(self):
self.org_price = 1000
# **
self.discount = 0.7
# 折扣
defget_price
(self):
val = self.org_price * self.discount
# 返回***折扣
return val
defset_price
(self, new_val):
# 接收new_val,將**修改為new_val
self.org_price = new_val
defdel_price
(self):
# 將折扣修改為1(刪掉折扣)
self.discount = 1
price = property(get_price, set_price, del_price, "備註:**")
g = goods()
print(g.price) # 獲取商品**
g.price = 2000
# 修改商品**
print(g.price)
del g.price # 刪除商品折扣
print(g.price)
print(goods.price.__doc__)
執行結果:
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...