国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:2日期:2022-06-23 13:18:16
為什么要寫這篇文章

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

什么是property裝飾器

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

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.agea = A()a.set_age(19)print(a.age)a.set_age(180)print(a.age)

結(jié)果如下:

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

不可否認(rèn),這樣確實(shí)達(dá)到了我們想要的效果,事實(shí)上,Java語(yǔ)言就是這樣實(shí)現(xiàn)的。但是python具有更簡(jiǎn)潔的表達(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 = 19print(a.age)a.age = 180print(a.age)

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

好處

1.property裝飾器將set()和get()方法變成了屬性!可以用 .age 來(lái)設(shè)置值,不需要用括號(hào),方便更改。2.增加了新的功能------只讀,如果你只寫@property而不寫@age.setter,那么這個(gè)變量就是只讀的,重新賦值則會(huì)報(bào)錯(cuò)。增加了程序的安全性。3.注意到property修飾的是私有成員,而私有成員本來(lái)相對(duì)來(lái)說(shuō)更安全一點(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)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产激情视频在线 | 国产区一区二 | 中文字幕一区日韩在线视频 | 欧美成人免费全部色播 | 久草在线国产 | 一本久道久久综合婷婷 | 久久狠狠色狠狠色综合 | 韩国一区在线 | 欧美一级手机免费观看片 | 久9精品视频 | 精品久久中文字幕有码 | 欧洲一级鲁丝片免费 | 农村寡妇一级毛片免费播放 | www三级免费 | 黄色美女视频网站 | 国产网曝手机视频在线观看 | 成年美女黄网站小视频 | 黄色一级片网址 | aaa在线观看高清免费 | 国产精品久久久久久麻豆一区 | 中文字幕欧美日韩一 | 国产真人毛片一级视频 | 亚洲精品久久久久久久777 | 亚洲综合一区二区精品久久 | 精品国产高清不卡毛片 | 中文字幕乱码中文乱码综合 | 欧美一级片免费在线观看 | 色青青草原桃花久久综合 | 亚洲精选在线 | 午夜性色福利视频在线视频 | 亚洲精品免费在线 | 韩国毛片在线 | 亚洲综合一区二区三区 | 黄色三级视频在线播放 | 欧美一级va在线视频免费播放 | 欧美18在线 | 91免费版网站 | 精品视频一区二区三区免费 | 国产精品欧美日韩一区二区 | 香港经典毛片a免费观看 | 日韩一级片网址 |