很多時候我們需要對乙個物件設定某個屬性和獲取某個屬性的時候,我們一般會寫乙個"set"的方法和「get」的方法,但是這樣寫起來不友好,使用起來不方便,如下**所示:
class
student
(object):
defset_score
(self, score):if
notisinstance
(score,
int)
:raise valueerror(
"score must be an integer"
)if score <
0or score >
100:
raise valueerror(
"score must between 0~100"
) self._score = score
defget_score
(self)
:return self._score
>>
> s = student(
)>>
> s.set_score(60)
# 通過呼叫set_score()例項方法並傳入引數設定學生成績屬性
>>
> s.get_score(
)# 通過get_score()例項方法獲取學成的成績屬性
60
此時,我們就可以使用@property這個類裝飾器,來把乙個方法當做屬性來呼叫,這樣寫起來會讓人很舒服(ps:能讓人感到舒服的**才是好的**^_^)
class
student
(object):
@property
defscore
(self)
:return self._score
@score.setter
defscore
(self, value):if
notisinstance
(value,
int)
:raise valueerror(
'score must be an integer!'
)if value <
0or value >
100:
raise valueerror(
'score must between 0 ~ 100!'
) self._score = value
>>
> s = student(
)>>
> s.score =
60# 實際轉化為s.set_score(60)
>>
> s.score # 實際轉化為s.get_score()
60
優點:@property廣泛應用在類的定義中,可以讓呼叫者寫出簡短的**,同時保證對引數進行必要的檢查,這樣,程式執行時就減少了出錯的可能性。 一文帶你搞懂python中的property
通常我們在獲得變數的一些私有屬性時,必須通過方法來獲取私有屬性,並不能直接訪問 修改其數值的時候也是要通過方法去修改,這樣非常的不方便 所以python提供了一種方式,將呼叫方法的的形式轉變為訪問屬性,這樣使用非常方便 class student def init self 這是乙個私有屬性 sel...
Python學習筆記之IF
關係表示式 邏輯表示式 and,or,not 單分支 num 0 if num 1 print num 大於 1 else print num 不大於1 雙分支 num 10 if num 1 print num 大於 10 elif num 10 print num 等於 10 elif num ...
python筆記之if練習
if練習 此次小demo涉及到if巢狀,佔位符使用,以及乙個良好的思維邏輯。如題 雲彩之上奶茶店盛大開業!門店招牌如下 勁爆勁爆,雲彩之上開業了!輸入序號即可購買!1 超土豪咖啡僅需 88 2 宇宙無敵大榴蓮 12 3 自動翻譯筆記本僅需 100 4 貧民咖啡僅需 1 5 土豪咖啡僅需 8 請你幫收...