国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中property屬性實例解析

2020-01-04 15:52:58
字體:
來源:轉載
供稿:網友

本文主要講述的是對Python中property屬性(特性)的理解,具體如下。

定義及作用:

在property類中,有三個成員方法和三個裝飾器函數。
三個成員方法分別是:fget、fset、fdel,它們分別用來管理屬性訪問;
三個裝飾器函數分別是:getter、setter、deleter,它們分別用來把三個同名的類方法裝飾成property。
fget方法用來管理類實例屬性的獲取,fset方法用來管理類實例屬性的賦值,fdel方法用來管理類實例屬性的刪除;
getter裝飾器把一個自定義類方法裝飾成fget操作,setter裝飾器把一個自定義類方法裝飾成fset操作,deleter裝飾器把一個自定義類方法裝飾成fdel操作。
只要在獲取自定義類實例的屬性時就會自動調用fget成員方法,給自定義類實例的屬性賦值時就會自動調用fset成員方法,在刪除自定義類實例的屬性時就會自動調用fdel成員方法。

下面從三個方面加以說明

Num01–>原始的getter和setter方法,獲取私有屬性值

# 定義一個錢的類class Money(object):  def __init__(self):    self._money = 0  def getmoney(self):    return self._money  def setmoney(self, value):    if isinstance(value, int):      self._money = value    else:      print("error:不是整型數字")money = Money()print(money.getmoney())# 結果是:0print("====修改錢的大小值====")money.setmoney(100)print(money.getmoney())# 結果是:100

Num02–>使用property升級getter和setter方法

# 定義一個錢的類class Money(object):  def __init__(self):    self._money = 0  def getmoney(self):    return self._money  def setmoney(self, value):    if isinstance(value, int):      self._money = value    else:      print("error:不是整型數字")  money = property(getmoney, setmoney)money = Money()print(money.getmoney())# 結果是:0print("====修改錢的大小值====")money.setmoney(100)print(money.getmoney())# 結果是:100#最后特別需要注意一點:實際錢的值是存在私有便令__money中。而屬性money是一個property對象,是用來為這個私有變量__money提供接口的。#如果二者的名字相同,那么就會出現遞歸調用,最終報錯。

Num03–>使用property取代getter和setter

@property成為屬性函數,可以對屬性賦值時做必要的檢查,并保證代碼的清晰短小

# 定義一個錢的類class Money(object):  def __init__(self):    self._money = 0  @property  # 注意使用@property裝飾器對money函數進行裝飾,就會自動生成一個money屬性,當調用獲取money的值時,就調用該函數  def money(self):    return self._money  @money.setter  # 使用生成的money屬性,調用@money.setter裝飾器,設置money的值  def money(self, value):    if isinstance(value, int):      self._money = value    else:      print("error:不是整型數字")aa = Money()print(aa.money)# 結果是:0print("====修改錢的大小值====")aa.money = 100print(aa.money)# 結果是:100

總結

以上就是本文關于Python中property屬性實例解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双江| 融水| 肃北| 玉溪市| 孟津县| 阿克陶县| 庐江县| 临潭县| 凤冈县| 龙游县| 西峡县| 海宁市| 邹城市| 昌江| 通道| 洛南县| 彩票| 枣庄市| 徐闻县| 当雄县| 黑龙江省| 宜丰县| 蒙城县| 仁怀市| 黄骅市| 邳州市| 邯郸县| 石渠县| 宁夏| 巴彦淖尔市| 尼勒克县| 土默特右旗| 北流市| 梅河口市| 清徐县| 油尖旺区| 宜宾市| 鄂温| 灌阳县| 阿拉尔市| 乌审旗|