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 异常

解释

  1. __init__ 方法: 初始化 BankAccount 对象,并设置初始余额 _balance
  2. @property 装饰器: 创建 balance 属性的 getter 方法,用于获取 _balance 的值。
  3. @balance.setter 装饰器: 创建 balance 属性的 setter 方法,用于设置 _balance 的值。在设置值之前,会检查值是否大于等于 0,如果小于 0 则抛出 ValueError 异常。

使用示例

在使用示例中,我们创建了一个初始余额为 100 的 BankAccount 对象。然后,我们使用 account.balance 获取余额,并使用 account.balance = 200 设置新的余额。最后,尝试将余额设置为 -100,会引发 ValueError 异常。

总结

使用 @property@setter 装饰器,我们可以方便地控制类属性的访问方式,并添加必要的逻辑限制,确保数据的完整性和安全性。

Python BankAccount 类:使用 @property 和 @setter 控制余额

原文地址: https://www.cveoy.top/t/topic/mZE6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录