Python BankAccount 类:使用 @property 和 @setter 控制余额
Python BankAccount 类:使用 @property 和 @setter 控制余额
本文将介绍如何在 Python 中创建一个 BankAccount 类,并使用 @property 装饰器创建 getter 方法获取余额,使用 @setter 装饰器创建 setter 方法设置余额,同时限制余额必须大于等于 0。
代码示例
class BankAccount:
def __init__(self, balance):
self._balance = balance
@property
def balance(self):
return self._balance
@balance.setter
def balance(self, value):
if value >= 0:
self._balance = value
else:
raise ValueError('balance cannot be negative')
# 使用示例
account = BankAccount(100)
print(account.balance) # 输出 100
account.balance = 200
print(account.balance) # 输出 200
account.balance = -100 # 抛出 ValueError 异常
解释
__init__方法: 初始化BankAccount对象,并设置初始余额_balance。@property装饰器: 创建balance属性的 getter 方法,用于获取_balance的值。@balance.setter装饰器: 创建balance属性的 setter 方法,用于设置_balance的值。在设置值之前,会检查值是否大于等于 0,如果小于 0 则抛出ValueError异常。
使用示例
在使用示例中,我们创建了一个初始余额为 100 的 BankAccount 对象。然后,我们使用 account.balance 获取余额,并使用 account.balance = 200 设置新的余额。最后,尝试将余额设置为 -100,会引发 ValueError 异常。
总结
使用 @property 和 @setter 装饰器,我们可以方便地控制类属性的访问方式,并添加必要的逻辑限制,确保数据的完整性和安全性。
原文地址: https://www.cveoy.top/t/topic/mZE6 著作权归作者所有。请勿转载和采集!