1. 作用
將類方法轉換為類屬性,可以用 . 直接獲取屬性值或者對屬性進行賦值
2.實現方式
使用property類來實現,也可以使用property裝飾器實現,二者本質是一樣的。多數情況下用裝飾器實現。
class Student(object): @property def score(self): return self._score @score.setter def score(self, value): if not isinstance(value ,int): raise ValueError('分數必須是整數') if value <0 or value>100: raise ValueError('分數必須0-100之間') self._score = value
student = Student()
student.score = 65
print(student.score)
65
score()方法上增加@property裝飾器,等同於score= property(fget=score),將score賦值為property的實例。
所以,被裝飾后的score,已經不是這個實例方法score了,而是property的實例score。