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

Python中property屬性實(shí)例解析

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

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

定義及作用:

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

下面從三個(gè)方面加以說明

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

# 定義一個(gè)錢的類
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升級(jí)getter和setter方法

# 定義一個(gè)錢的類
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

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

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

Num03–>使用property取代getter和setter

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

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

  @property
  # 注意使用@property裝飾器對(duì)money函數(shù)進(jìn)行裝飾,就會(huì)自動(dòng)生成一個(gè)money屬性,
當(dāng)調(diào)用獲取money的值時(shí),就調(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屬性實(shí)例解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • Python基于plotly模塊實(shí)現(xiàn)的畫圖操作示例

    Python基于plotly模塊實(shí)現(xiàn)的畫圖操作示例

    這篇文章主要介紹了Python基于plotly模塊實(shí)現(xiàn)的畫圖操作,涉及Python基于plotly模塊的數(shù)值運(yùn)算與圖形操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-01-01
  • Python語言基礎(chǔ)之函數(shù)語法

    Python語言基礎(chǔ)之函數(shù)語法

    這篇文章主要介紹了Python語言基礎(chǔ)中的函數(shù)語法,文中有詳細(xì)的代碼示例供大家參考,對(duì)學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考閱讀下
    2023-05-05
  • Anaconda修改默認(rèn)虛擬環(huán)境安裝位置的方案分享

    Anaconda修改默認(rèn)虛擬環(huán)境安裝位置的方案分享

    新安裝Anaconda后,在創(chuàng)建環(huán)境時(shí)環(huán)境自動(dòng)安裝在C盤,但是C盤空間有限,下面這篇文章主要給大家介紹了關(guān)于Anaconda修改默認(rèn)虛擬環(huán)境安裝位置的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 使用pandas read_table讀取csv文件的方法

    使用pandas read_table讀取csv文件的方法

    今天小編就為大家分享一篇使用pandas read_table讀取csv文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python遞歸全排列實(shí)現(xiàn)方法

    python遞歸全排列實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了python遞歸全排列實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python實(shí)現(xiàn)輕松找出兩個(gè)列表不同之處

    Python實(shí)現(xiàn)輕松找出兩個(gè)列表不同之處

    在日常編程中,需要比較兩個(gè)列表并找出它們之間差異是一種常見需求,在本文中,我們將深入探討Python中查找兩個(gè)列表差異值的方法,需要的小伙伴可以參考下
    2023-12-12
  • 用Python爬取某乎手機(jī)APP數(shù)據(jù)

    用Python爬取某乎手機(jī)APP數(shù)據(jù)

    最近爬取的數(shù)據(jù)都是網(wǎng)頁(yè)端,今天來教大家如何爬取手機(jī)端app數(shù)據(jù)(本文以ios蘋果手機(jī)為例,其實(shí)安卓跟ios差不多)! 本文將以『某乎』為實(shí)戰(zhàn)案例,手把手教你從配置到代碼一步一步的爬取App數(shù)據(jù),需要的朋友可以參考下
    2021-06-06
  • 用60行代碼實(shí)現(xiàn)Python自動(dòng)搶微信紅包

    用60行代碼實(shí)現(xiàn)Python自動(dòng)搶微信紅包

    這篇文章主要介紹了用60行代碼實(shí)現(xiàn)Python自動(dòng)搶微信紅包,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Python制作Windows按鍵通知腳本

    Python制作Windows按鍵通知腳本

    對(duì)于鍵盤沒有背光燈的同學(xué)而言,切換大小寫或控制Num鍵開關(guān)的時(shí)候沒有提示,經(jīng)常需要試探性地輸入一些字符來判斷開關(guān)是否打開,體驗(yàn)非常糟糕。所以本文就來用Python做一個(gè)Windows按鍵通知腳本,需要的可以參考一下
    2022-11-11
  • Python Docx庫(kù)完美操作word文檔實(shí)例探究

    Python Docx庫(kù)完美操作word文檔實(shí)例探究

    這篇文章主要為大家介紹了Python Docx庫(kù)完美操作word文檔,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01

最新評(píng)論