亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python中關于property的最詳細使用方法

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

其實是因為最近學到了python的property裝飾器的相關知識,剛開始學得云里霧里,于是乎,看了許多相關博客,不巧,大概是自己基礎不太好吧,真心感覺許多人寫的太過深奧,而且不是很全面。于是本人花了整整一下午實驗,現在將關于property的相關知識分享出來。如有錯誤之處,還望各位不吝賜教!

什么是property裝飾器

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

set()和get()的使用

class A: def set_age(self, age): if 0 < age < 120: self.age = age else: print('非法的年齡!默認為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)

結果如下:

19非法的年齡!默認為180

不可否認,這樣確實達到了我們想要的效果,事實上,Java語言就是這樣實現的。但是python具有更簡潔的表達,就是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('非法的年齡!默認為18')a = A()a.age = 19print(a.age)a.age = 180print(a.age)

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

好處

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

注意事項

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

到此這篇關于python中關于property的最詳細使用方法的文章就介紹到這了,更多相關python property使用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲色图在线观看 | 中文一级毛片 | 国产色网 | 亚洲大尺度在线 | 一区二三区国产 | 毛片一级在线观看 | 亚洲高清免费 | 91精品国产亚一区二区三区 | 真人毛片免费拍拍拍aa视频 | aaa毛片在线 | 免费涩涩在线视频网 | 国拍在线精品视频免费观看 | 中国xxx片 | 奇米亚洲春色 | 特黄特色的大片观看免费视频 | www.一级黄色片 | 国产在线观看网址在线视频 | wwxxx日本| 免费看一级视频 | 免费一级做a爰片性色毛片 免费一级做a爰片性视频 | 免费看a毛片| 2048国产精品原创综合在线 | 日日综合网 | 国产拍拍视频一二三四区 | 久久aa| 国内精品一区视频在线播放 | 国产免费精彩视频 | 天天好比网 | 韩国一级毛片a级免观看 | 中文字幕专区高清在线观看 | 国产精品 第二页 | 国产日韩欧美精品一区二区三区 | 国产一二在线观看视频网站 | 亚洲日比视频 | 国产精久久一区二区三区 | 国产一区二区三区丶四区 | 黄的三级在线播放 | 久久亚洲国产成人影院 | 午夜免费福利不卡网址92 | 亚洲午夜免费视频 | 久久中文字幕网 |