@property 是 Python 中的一个装饰器,用于创建属性,提供一种优雅的方法来管理类的属性访问
- 封装:隐藏内部实现细节,控制访问权限。
- 简洁性:使用属性的方式,使得代码更清晰。
- 易于维护:可以在不改变外部接口的情况下添加逻辑。
class BankAccount:
def __init__(self, balance):
self._balance = balance # 私有属性 @property
def balance(self):
return self._balance # 只读属性
@balance.setter
def balance(self, amount):
if amount < 0:
raise ValueError("余额不能为负") # 校验:余额不能为负
self._balance = amount # 修改余额
# 使用示例
account = BankAccount(1000) # 创建一个账户,初始余额为1000
print(account.balance) # 输出: 1000
# 尝试修改余额
account.balance = 500 # 修改余额为500
print(account.balance) # 输出: 500
# account.balance = -200 # 如果取消注释,将引发 ValueError