用的2. @property上文中,提到限制属性的修改class Student(object): """docstring for Student""" def get_score(self):
时间: 2024-11-17 11:30:51 浏览: 14
在Python中,`@property` 是一个装饰器,它允许我们将方法转换为属性调用的形式,使得我们可以像访问普通属性那样直接获取或设置值,而实际上是在背后执行一些逻辑。在您提供的 `Student` 类的例子中:
```python
class Student(object):
"""docstring for Student"""
@property
def score(self): # 使用@property将get_score方法包装成score属性
return self.get_score()
@score.setter # 添加setter方法,用于设置score属性的值
def score(self, value):
if not isinstance(value, int) or value < 0 or value > 100:
raise ValueError("Score must be an integer between 0 and 100")
self._score = value # 存储实际分数,这里通常会有一个私有变量
# 现在你可以像这样操作:
student = Student()
student.score = 95 # 设置分数
print(student.score) # 获取分数
```
通过这种方式,我们可以在 `score` 属性上添加一些验证规则,比如限制分数的范围,而不需要暴露底层的 `get_score` 和 `set_score` 方法。
阅读全文