參考:
https://www.liaoxuefeng.com/wiki/1016959663602400/1017502538658208
https://www.cnblogs.com/yuncong/p/9562784.html
在類中使用,把類的一個方法定義成屬性
1.首先定義一個類
class Student(object):
def __init__(self,score):
self._score = score
if __name__ == '__main__':
s = Student(88)
print(s._score)
s._score = 99
print(s._score)
運行結果:
88
99
2.實際上使用set_score等函數
因爲實際的編程中,我們使用的是set_score以及get_score這樣的函數來設置屬性
class Student(object):
def __init__(self,score):
self._score = score
def get_score(self):
return self._score
def set_score(self,value):
if not isinstance(value, int):
raise ValueError('score must be an integer!')
if value < 0 or value > 100:
raise ValueError('score must between 0 ~ 100!')
self._score = value
3.需要更簡單的方法
這裏就可以藉助property函數,將方法僞裝成屬性
class Student(object):
def __init__(self,score):
self._score = score
#這個用於僞裝
@property
def score(self):
return self._score
#這個用於設置僞裝
@score.setter
def score(self,new_value):
if not isinstance(new_value, int):
raise ValueError('score must be an integer!')
if new_value < 0 or new_value > 100:
raise ValueError('score must between 0 ~ 100!')
self._score = new_value