91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python高級property屬性用法實例分析

發布時間:2020-09-23 11:17:05 來源:腳本之家 閱讀:133 作者:HMMHMH 欄目:開發技術

本文實例講述了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)

執行結果:

Python高級property屬性用法實例分析

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)

執行結果:

Python高級property屬性用法實例分析

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)

執行結果:

Python高級property屬性用法實例分析

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高級property屬性用法實例分析

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python面向對象程序設計入門與進階教程》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

财经| 同江市| 南靖县| 大兴区| 赤城县| 多伦县| 桦南县| 临城县| 平遥县| 洱源县| 贵州省| 万载县| 枣强县| 安多县| 郎溪县| 酉阳| 随州市| 林西县| 香格里拉县| 周至县| 维西| 永宁县| 卓尼县| 佛学| 房山区| 左云县| 牟定县| 通江县| 龙口市| 育儿| 洪雅县| 南通市| 阜新| 昌都县| 虹口区| 麻阳| 海宁市| 从江县| 新河县| 青州市| 荣昌县|