python中property()方法的理解
property方法,一是讓方法變成像類中的屬性那樣訪問。第二個就是可以設置為可讀寫的屬性。
property方法:
class property([fget[, fset[, fdel[, doc]]]])
- fget -- 獲取屬性值的函數
- fset -- 設置屬性值的函數
- fdel -- 刪除屬性值函數
- doc -- 屬性描述信息
python中使用property屬性有兩種方法。使用@property裝飾器和使用property()函數。
class Student(object):
def __init__(self, score=0):
self._score = score
def get_score(self):
print("getting score")
return self._score
def set_score(self, value):
print("setting score")
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
def del_score(self):
print("delete score")
del self._score
score = property(get_score, set_score, del_score)#相當于定制一個接口
s = Student(60)
print(s.score)
print("=====================")
s.score = 88
print(s.score)
print("=====================")
del s.score
# 創建一個空的 property 對象
score = property()
# 綁定 getter
score = score.getter(get_score)
# 綁定 setter
score = score.setter(set_score)
#綁定del
score = score.del(del_score)
這四句相當于下面的一句
score = property(get_score, set_score, del_score)


浙公網安備 33010602011771號