Python BankAccount 类:使用 @property 和 @balance.setter 创建 getter 和 setter 方法
使用 Python 创建 BankAccount 类并使用 @property 和 @balance.setter 创建 getter 和 setter 方法
本文将介绍如何使用 Python 的 @property 和 @balance.setter 装饰器在 BankAccount 类中创建 getter 和 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:
print('Invalid balance')
# 使用示例
account = BankAccount(1000)
print(account.balance) # 输出 1000
account.balance = 2000
print(account.balance) # 输出 2000
account.balance = -1000 # 输出 'Invalid balance'
代码解释
-
BankAccount类- 该类有一个私有属性
_balance用于存储账户余额。
- 该类有一个私有属性
-
@property装饰器- 使用
@property装饰器定义balance方法,该方法充当 getter 方法,用于返回账户余额。
- 使用
-
@balance.setter装饰器- 使用
@balance.setter装饰器定义balance方法,该方法充当 setter 方法,用于设置账户余额。 - 该方法在设置余额时,首先检查
value是否大于等于 0。 - 如果
value大于等于 0,则将_balance设置为value。 - 如果
value小于 0,则打印 “Invalid balance”。
- 使用
-
使用示例
- 创建了一个
BankAccount对象,初始余额为 1000。 - 使用
account.balance获取余额,并打印输出,结果为 1000。 - 使用
account.balance = 2000设置余额,并打印输出,结果为 2000。 - 使用
account.balance = -1000设置余额,由于余额小于 0,程序会输出 “Invalid balance”。
- 创建了一个
总结
通过使用 @property 和 @balance.setter 装饰器,我们可以很方便地创建 getter 和 setter 方法,并通过 setter 方法对属性值的设置进行限制,从而确保代码的安全性。
希望本文能帮助您理解如何使用 @property 和 @balance.setter 装饰器在 Python 中创建 getter 和 setter 方法。
原文地址: https://www.cveoy.top/t/topic/mZDN 著作权归作者所有。请勿转载和采集!