Python 如何限制实例变量值不超过定义的限制
以下代码导致负余额。我不是在取款方法中加入if条件,而是在寻找其他方法来检查和限制余额为负时的余额Python 如何限制实例变量值不超过定义的限制,python,oop,Python,Oop,以下代码导致负余额。我不是在取款方法中加入if条件,而是在寻找其他方法来检查和限制余额为负时的余额 class Customer(object): def __init__(self, balance): self.balance = balance def withdrawl(self, amount): self.balance -= amount return self.balance jeff = Customer(1
class Customer(object):
def __init__(self, balance):
self.balance = balance
def withdrawl(self, amount):
self.balance -= amount
return self.balance
jeff = Customer(1000.0)
print jeff.withdrawl(2000)
提前感谢您可以执行以下操作:
class Balance():
def __init__(self,x):
assert x >= 0, "Balance can't be negative!"
self.value = x
class Customer(object):
def __init__(self, balance):
self.balance = balance
def withdrawl(self, amount):
self.balance = Balance(self.balance.value - amount)
return self.balance
jeff = Customer(Balance(1000.0))
print jeff.withdrawl(2000)
但对我来说,这似乎是一种过度的杀伤力。为什么不使用if语句?我正在寻找一种方法,而不是添加条件。我不知道python实现这一目标的范围。避免使用关键字的基本原理是?
self.balance-=amount*(self.balance>=amount)
想知道这是否在范围内。不知道如何在教程中搜索相同的内容。使用关键字resolves,我知道。正如falsetru所演示的,您不需要使用if
语句。另一种选择是使用自定义对象存储值,该值不能为负值,但该对象的代码需要使用if
语句或类似falsetru示例中的语法。Python的禅宗说:“显式优于隐式”。当然,如果试图提取超过当前余额的金额,您不想默默地将余额限制为零。您不想生成某种警告或错误消息吗?