python的@property

58 阅读1分钟

@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