使用@property

如果需要設(shè)置一個參數(shù),并且需要檢驗,那么就可以使用函數(shù)來檢驗
比如:
class student:
get_score(self):
return self.score

set_score(self,s):
self.score = s

使用:
stu = student()
stu.set_score(99)
print stu.get_score()

這樣很麻煩,也不夠直觀。
在python中非常簡單,有大神器裝飾器,@property,Python內(nèi)置的@property
裝飾器就是負(fù)責(zé)把一個方法變成屬性調(diào)用的.
把一個getter方法變成屬性,只需要加上@property就可以了,此時,@property本身又創(chuàng)建了另一個裝飾器@score.setter,負(fù)責(zé)把一個setter方法變成屬性賦值,于是,我們就擁有一個可控的屬性操作:

class student:
@property
score(self):
return self.score
@score.setter
score(self,s)
self.score = s

使用:
stu = student()
stu.score = 99
print stu.score

這樣方便直觀很多吧!

小結(jié)
@property廣泛應(yīng)用在類的定義中,可以讓調(diào)用者寫出簡短的代碼,同時保證對參數(shù)進(jìn)行必要的檢查,這樣,程序運行時就減少了出錯的可能性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在綁定屬性時,如果我們直接把屬性暴露出去,雖然寫起來很簡單,但是,沒辦法檢查參數(shù),導(dǎo)致可以把成績隨便改:s = S...
    牛崽兒酷閱讀 279評論 0 0
  • 使用@property:(首先,這個一般是放在類里邊,其次這個放在類內(nèi)函數(shù)之上) 既能檢查參數(shù)(就是通過get()...
    黃大臻Dzreal閱讀 252評論 0 0
  • 使用@property Python內(nèi)置的@property裝飾器就是負(fù)責(zé)把一個方法變成屬性調(diào)用的 把一個gett...
    木凜閱讀 547評論 0 1
  • 要點: 函數(shù)式編程:注意不是“函數(shù)編程”,多了一個“式” 模塊:如何使用模塊 面向?qū)ο缶幊蹋好嫦驅(qū)ο蟮母拍睢傩浴?..
    victorsungo閱讀 1,706評論 0 6
  • 基礎(chǔ)1.r''表示''內(nèi)部的字符串默認(rèn)不轉(zhuǎn)義2.'''...'''表示多行內(nèi)容3. 布爾值:True、False(...
    neo已經(jīng)被使用閱讀 1,889評論 0 5

友情鏈接更多精彩內(nèi)容