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

python中關(guān)于property的最詳細(xì)使用方法

 更新時(shí)間:2021年04月06日 09:21:32   作者:lecboyECNU  
這篇文章主要介紹了python中關(guān)于property的最詳細(xì)使用方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

為什么要寫這篇文章

其實(shí)是因?yàn)樽罱鼘W(xué)到了python的property裝飾器的相關(guān)知識(shí),剛開始學(xué)得云里霧里,于是乎,看了許多相關(guān)博客,不巧,大概是自己基礎(chǔ)不太好吧,真心感覺許多人寫的太過深?yuàn)W,而且不是很全面。于是本人花了整整一下午實(shí)驗(yàn),現(xiàn)在將關(guān)于property的相關(guān)知識(shí)分享出來。如有錯(cuò)誤之處,還望各位不吝賜教!

什么是property裝飾器

顧名思義,這是一個(gè)裝飾器,起到一個(gè)輔助作用,具體理解請(qǐng)看下面一個(gè)例子。我們知道,程序中有許多變量都有范圍的限制,比如年齡,工資,身高等不可能為負(fù)數(shù)。但是用戶輸入時(shí),有時(shí)會(huì)不可避免地輸入非法的值,如果我們的程序沒有一個(gè)判斷,那么極有可能導(dǎo)致整個(gè)程序崩潰!因此,我們常常會(huì)寫一些set(),get()等函數(shù)來判斷,但常常會(huì)過于麻煩,這時(shí),便出現(xiàn)了property裝飾器,它既有判斷的功能,而且非常簡潔。

set()和get()的使用

class A:
  def set_age(self, age):
    if 0 < age < 120:
      self.age = age
    else:
      print("非法的年齡!默認(rèn)為18")
      self.age = 0
  def get_age(self):
    return self.age
a = A()
a.set_age(19)
print(a.age)
a.set_age(180)
print(a.age)

結(jié)果如下:

19
非法的年齡!默認(rèn)為18
0

不可否認(rèn),這樣確實(shí)達(dá)到了我們想要的效果,事實(shí)上,Java語言就是這樣實(shí)現(xiàn)的。但是python具有更簡潔的表達(dá),就是property裝飾器。

property裝飾器的使用

class A:
  @property
  def age(self):
    return self._age
  @age.setter
  def age(self, age):
    if 0 < age < 120:
      self._age = age
    else:
      self._age = 18
      print("非法的年齡!默認(rèn)為18")
a = A()
a.age = 19
print(a.age)
a.age = 180
print(a.age)

這里的@property相當(dāng)于get()方法,@age.setter相當(dāng)于set()方法。

好處

1.property裝飾器將set()和get()方法變成了屬性!可以用 .age 來設(shè)置值,不需要用括號(hào),方便更改。
2.增加了新的功能------只讀,如果你只寫@property而不寫@age.setter,那么這個(gè)變量就是只讀的,重新賦值則會(huì)報(bào)錯(cuò)。增加了程序的安全性。
3.注意到property修飾的是私有成員,而私有成員本來相對(duì)來說更安全一點(diǎn),這體現(xiàn)了代碼的一致性。

注意事項(xiàng)

1.如果你要使修飾的成員只讀,則必須在定義時(shí)就設(shè)置好值,否則會(huì)報(bào)錯(cuò)。
2.property裝飾器只能修飾私有成員,如果修飾非私有成員,則會(huì)報(bào)循環(huán)的錯(cuò)誤。結(jié)果確實(shí)是這樣,但原因不太清楚,煩請(qǐng)大佬們不吝賜教!
3.setter前的變量必須是property修飾的變量,如本例中是age,二者必須一致。

到此這篇關(guān)于python中關(guān)于property的最詳細(xì)使用方法的文章就介紹到這了,更多相關(guān)python property使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python標(biāo)準(zhǔn)庫06之子進(jìn)程 (subprocess包) 詳解

    Python標(biāo)準(zhǔn)庫06之子進(jìn)程 (subprocess包) 詳解

    本篇文章主要介紹了Python標(biāo)準(zhǔn)庫06之子進(jìn)程 (subprocess包) 詳解,具有一定的參考價(jià)值,有興趣的同學(xué)可以了解一下。
    2016-12-12
  • python繪制直方圖的方法

    python繪制直方圖的方法

    這篇文章主要為大家詳細(xì)介紹了python繪制直方圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • python錯(cuò)誤處理詳解

    python錯(cuò)誤處理詳解

    這篇文章主要介紹了python錯(cuò)誤處理詳解,本文講解了try語句、錯(cuò)誤堆棧、記錄錯(cuò)誤、拋出錯(cuò)誤等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • Python腳本實(shí)現(xiàn)自動(dòng)替換文件指定內(nèi)容

    Python腳本實(shí)現(xiàn)自動(dòng)替換文件指定內(nèi)容

    這篇文章主要為大家詳細(xì)介紹了如何編寫一個(gè)py腳本,可以實(shí)現(xiàn)自定義替換py文件里面指定內(nèi)容,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • python中pathlib模塊的基本用法與總結(jié)

    python中pathlib模塊的基本用法與總結(jié)

    這篇文章主要給大家介紹了關(guān)于python中pathlib模塊的基本用法與總結(jié)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 在python中使用with打開多個(gè)文件的方法

    在python中使用with打開多個(gè)文件的方法

    今天小編就為大家分享一篇在python中使用with打開多個(gè)文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python遞歸函數(shù)特點(diǎn)及原理解析

    Python遞歸函數(shù)特點(diǎn)及原理解析

    這篇文章主要介紹了Python遞歸函數(shù)特點(diǎn)及原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • PyTorch訓(xùn)練LSTM時(shí)loss.backward()報(bào)錯(cuò)的解決方案

    PyTorch訓(xùn)練LSTM時(shí)loss.backward()報(bào)錯(cuò)的解決方案

    這篇文章主要介紹了PyTorch訓(xùn)練LSTM時(shí)loss.backward()報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python重寫父類的三種方法小結(jié)

    Python重寫父類的三種方法小結(jié)

    本文主要介紹了Python重寫父類的三種方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • python筆記(1) 關(guān)于我們應(yīng)不應(yīng)該繼續(xù)學(xué)習(xí)python

    python筆記(1) 關(guān)于我們應(yīng)不應(yīng)該繼續(xù)學(xué)習(xí)python

    關(guān)于Python,如果你要學(xué)習(xí),建議大家查看一下網(wǎng)站:因?yàn)楸救艘彩莿倓倹Q定收集點(diǎn)零碎時(shí)間來學(xué)習(xí)下它,推薦可能并不是最好的
    2012-10-10

最新評(píng)論

惠州市| 南昌县| 拜城县| 甘德县| 高唐县| 时尚| 新绛县| 扎赉特旗| 南乐县| 交口县| 富锦市| 大同市| 永和县| 兴隆县| 丘北县| 高平市| 连江县| 中超| 台北市| 那坡县| 托里县| 沁源县| 马尔康县| 江安县| 龙海市| 亳州市| 大埔区| 荔浦县| 临武县| 城口县| 涿州市| 丁青县| 分宜县| 乃东县| 莱西市| 南木林县| 独山县| 响水县| 铁岭县| 怀集县| 余江县|