python property函数
时间: 2023-11-21 14:04:11 浏览: 28
`property` 是 Python 内置函数,它可以将方法转换为属性,从而简化代码。它允许你定义一个属性的 getter、setter 和 deleter 方法,这些方法在访问、修改或删除属性时会自动被调用。使用 `property` 可以让代码更加清晰、易读和易维护。
下面是一个示例,使用 `property` 定义一个属性 `score`:
```python
class Student:
def __init__(self, name, score):
self.name = name
self._score = score # 私有变量
@property
def score(self):
return self._score
@score.setter
def 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 be between 0 and 100!')
self._score = value
s = Student('Bob', 90)
print(s.score) # 输出 90
s.score = 80
print(s.score) # 输出 80
```
上述代码中,我们使用 `@property` 装饰器将 `score` 方法转换为属性。此后,我们就可以像访问属性一样访问 `score` 方法,而不需要使用括号调用它。同时,我们也定义了 `@score.setter` 装饰器,将 `score` 方法变成可赋值的属性。
在 `score.setter` 方法中,我们对传入的参数进行了校验,确保其为整数且取值在 0 到 100 之间。这样,我们就可以保证属性 `score` 的正确性和安全性。