本文實(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)用屬性(沒(méi)有用小括號(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_priceobj = 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ì)有所幫助。
新聞熱點(diǎn)
疑難解答
網(wǎng)友關(guān)注