目录
在创建实例属性时,如果直接把实例属性暴露出去,虽然写起来简单,但是存在一些风险,比如实例属性可以在外部被修改。

为了限制外部操作,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,在这些方法中还可以增加一些检查操作,比如在get_score中增加获取权限操作,在set_score中增加输入检查操作。
class Student(object):
def __init__(self):
self._score = 60
def get_score(self):
print(self._score)
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
if __name__ == "__main__":
s = Student()
s.get_score()
s.set_score("aaa") # 语法报错
现在,对任意的Student实例进行操作,就不能随心所欲地设置score了。但是,上面的调用方法又略显复杂,没有直接调用属性这么直接简单。</

文章介绍了在Python中如何使用@property装饰器和property()函数来创建具有数据验证功能的类属性,以保护实例变量不被外部随意修改。通过getter和setter方法,可以控制对属性的读取和设置,确保输入的合法性。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



