您好,登錄后才能下訂單哦!
本文實例講述了Python高級property屬性用法。分享給大家供大家參考,具體如下:
property屬性
1.property屬性:
是一個提高開發者用戶體驗度的屬性,可以將一個函數改造的像屬性一樣。
例:
# 定義的時候像是一個函數 使用的時候和屬性的方式是以樣的 class Foo(object): @property def money(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 def start(self): val = (self.current_page - 1) * self.per_items + 1 return val @property def end(self): val = self.current_page * self.per_items return val p = Pager(2) print(p.start) print(p.end)
執行結果:
3.裝飾器方式:在方法上應用裝飾器
三種@property裝飾器:
class Goods: @property def price(self): print('@property') @price.setter def price(self, value): print('@price.setter') @price.deleter def price(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 def price(self): val = self.org_price * self.discount # 返回價格*折扣 return val @price.setter def price(self, new_val): # 接收val,將價格修改為val self.org_price = new_val @price.deleter def price(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 # 折扣 def get_price(self): val = self.org_price * self.discount # 返回價格*折扣 return val def set_price(self, new_val): # 接收new_val,將價格修改為new_val self.org_price = new_val def del_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相關內容感興趣的讀者可查看本站專題:《Python面向對象程序設計入門與進階教程》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。