最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中property屬性實例解析

 更新時間:2018年02月10日 14:12:56   作者:ITxiaoke  
這篇文章主要介紹了Python中property屬性實例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下

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

定義及作用:

在property類中,有三個成員方法和三個裝飾器函數(shù)。
三個成員方法分別是:fget、fset、fdel,它們分別用來管理屬性訪問;
三個裝飾器函數(shù)分別是:getter、setter、deleter,它們分別用來把三個同名的類方法裝飾成property。
fget方法用來管理類實例屬性的獲取,fset方法用來管理類實例屬性的賦值,fdel方法用來管理類實例屬性的刪除;
getter裝飾器把一個自定義類方法裝飾成fget操作,setter裝飾器把一個自定義類方法裝飾成fset操作,deleter裝飾器把一個自定義類方法裝飾成fdel操作。
只要在獲取自定義類實例的屬性時就會自動調(diào)用fget成員方法,給自定義類實例的屬性賦值時就會自動調(diào)用fset成員方法,在刪除自定義類實例的屬性時就會自動調(diào)用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:不是整型數(shù)字")


money = Money()
print(money.getmoney())
# 結(jié)果是:0
print("====修改錢的大小值====")
money.setmoney(100)
print(money.getmoney())
# 結(jié)果是: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:不是整型數(shù)字")

  money = property(getmoney, setmoney)

money = Money()
print(money.getmoney())
# 結(jié)果是:0
print("====修改錢的大小值====")
money.setmoney(100)
print(money.getmoney())
# 結(jié)果是:100

#最后特別需要注意一點:實際錢的值是存在私有便令__money中。而屬性money是一個property對象,
是用來為這個私有變量__money提供接口的。

#如果二者的名字相同,那么就會出現(xiàn)遞歸調(diào)用,最終報錯。

Num03–>使用property取代getter和setter

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

# 定義一個錢的類
class Money(object):
  def __init__(self):
    self._money = 0

  @property
  # 注意使用@property裝飾器對money函數(shù)進行裝飾,就會自動生成一個money屬性,
當調(diào)用獲取money的值時,就調(diào)用該函數(shù)
  def money(self):
    return self._money

  @money.setter
  # 使用生成的money屬性,調(diào)用@money.setter裝飾器,設(shè)置money的值
  def money(self, value):
    if isinstance(value, int):
      self._money = value
    else:
      print("error:不是整型數(shù)字")

aa = Money()
print(aa.money)
# 結(jié)果是:0
print("====修改錢的大小值====")
aa.money = 100
print(aa.money)
# 結(jié)果是:100

總結(jié)

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

相關(guān)文章

最新評論

贺州市| 乐平市| 石城县| 邢台县| 宜章县| 玛沁县| 平江县| 万年县| 剑川县| 曲阳县| 新建县| 勃利县| 松江区| 平遥县| 湟源县| 涞水县| 沁阳市| 海门市| 凌海市| 迭部县| 萨嘎县| 博湖县| 游戏| 河津市| 嘉黎县| 道孚县| 波密县| 洛隆县| 获嘉县| 育儿| 庆安县| 宁乡县| 遂宁市| 大埔区| 福贡县| 浪卡子县| 万宁市| 军事| 黔东| 绥宁县| 楚雄市|