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)
 


posted @ 2020-06-11 11:01  一日学一日功  阅读(447)  评论(0编辑  收藏  举报