欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

裝飾器方式:

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

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

運(yùn)行結(jié)果:

100

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

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

類屬性方式:

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

class Goods(object):
  def __init__(self):
    # 原價(jià)
    self.original_price = 100
    # 折扣
    self.discount = 0.8
  def get_price(self):
    # 實(shí)際價(jià)格 = 原價(jià) * 折扣
    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     # 獲取商品價(jià)格 自動(dòng)調(diào)用propert()函數(shù)第一個(gè)參數(shù)指定的方法。
obj.PRICE = 200  # 設(shè)置商品原價(jià) 自動(dòng)調(diào)用propert()函數(shù)第二個(gè)參數(shù)指定的方法。
desc = Goods.PRICE.__doc__ # 自動(dòng)獲取第四個(gè)參數(shù)中設(shè)置的值:屬性描述信息...
print(desc)
del obj.PRICE   # 刪除商品原價(jià) 自動(dòng)調(diào)用propert()函數(shù)第三個(gè)參數(shù)指定的方法。

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

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

相關(guān)文章

最新評(píng)論