亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python 類,property屬性(簡化屬性的操作),@property,property()用法示例

 更新時間:2019年10月12日 11:03:23   作者:houyanhua1  
這篇文章主要介紹了Python 類,property屬性(簡化屬性的操作),@property,property()用法,結(jié)合實例形式分析了Python類的定義、屬性、方法及相關(guān)使用技巧,需要的朋友可以參考下

本文實例講述了Python 類,property屬性(簡化屬性的操作),@property,property()用法。分享給大家供大家參考,具體如下:

property屬性的創(chuàng)建方式有兩種:1.@property裝飾器方式   2.類屬性方式 ( 類屬性=property() )

property屬性可以簡化實例對象對屬性的操作(獲取、設(shè)置),可以對屬性做類型校驗和預(yù)處理等。

裝飾器方式:

demo.py(@property,獲取屬性值,舊式類與新式類都有的方式):

class Goods:
  @property
  # 只能傳遞self參數(shù)。 必須返回一個值
  def size(self):
    return 100 # 必須返回一個值
obj = Goods()
result = obj.size # 調(diào)用屬性(沒有用小括號,用屬性的方式調(diào)用函數(shù))
print(result)
# property屬性一般對屬性值做一些預(yù)處理或格式化處理等,可以簡化屬性的獲取。

運行結(jié)果:

100

demo.py(@xxx.setter,@xxx.deleter,設(shè)置屬性值、刪除屬性,新式類支持的方式):

class Goods(object):
  def __init__(self):
    # 原價
    self.original_price = 100
    # 折扣
    self.discount = 0.8
  @property
  # 方式一 獲取屬性值 (新式類和舊式類都支持該方式)
  def price(self):
    # 實際價格 = 原價 * 折扣
    new_price = self.original_price * self.discount
    return new_price
  @price.setter
  # 方式二 設(shè)置屬性值 (舊式類不支持,需要傳兩個參數(shù))
  def price(self, value):
    self.original_price = value
  @price.deleter
  # 方式三 刪除屬性 (舊式類不支持)
  def price(self):
    del self.original_price
obj = Goods()
obj.price     # 獲取商品價格 (自動調(diào)用@property修飾的函數(shù))
obj.price = 200  # 修改商品原價 (自動調(diào)用@price.setter修飾的函數(shù),并將200傳給函數(shù))
del obj.price   # 刪除商品原價 (自動調(diào)用@price.deleter修飾的函數(shù))

類屬性方式:

demo.py(類屬性創(chuàng)建property屬性,舊式類與新式類都支持):

class Goods(object):
  def __init__(self):
    # 原價
    self.original_price = 100
    # 折扣
    self.discount = 0.8
  def get_price(self):
    # 實際價格 = 原價 * 折扣
    new_price = self.original_price * self.discount
    return new_price
  def set_price(self, value):
    self.original_price = value
  def del_price(self):
    del self.original_price
  # 類屬性。 property(方法名1,方法名2,方法名3,"屬性描述信息")
  PRICE = property(get_price, set_price, del_price, "屬性描述信息...")
obj = Goods()
obj.PRICE     # 獲取商品價格 自動調(diào)用propert()函數(shù)第一個參數(shù)指定的方法。
obj.PRICE = 200  # 設(shè)置商品原價 自動調(diào)用propert()函數(shù)第二個參數(shù)指定的方法。
desc = Goods.PRICE.__doc__ # 自動獲取第四個參數(shù)中設(shè)置的值:屬性描述信息...
print(desc)
del obj.PRICE   # 刪除商品原價 自動調(diào)用propert()函數(shù)第三個參數(shù)指定的方法。

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程

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

相關(guān)文章

最新評論