【发布时间】:2015-12-12 14:38:20
【问题描述】:
以下代码导致负余额。我没有在提款方法中设置 if 条件,而是在寻找其他方法来检查和限制余额变为负数时。
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)
提前致谢
【问题讨论】:
-
我正在寻找添加条件以外的方法。我不知道 python 在实现相同目标方面的范围。
-
避免使用关键字的理由是什么?
-
self.balance -= amount * (self.balance >= amount) -
想知道,这是否在范围内。不知道如何在教程中搜索相同的内容。使用关键字解析,我知道。
-
正如 falsetru 所证明的,您不需要使用
if声明。另一种选择是使用自定义对象来存储永远不会为负的值,但该对象的代码需要使用if语句或类似于 falsetru 示例中的语法。 OTOH,Python 的禅宗说:“显式胜于隐式”。如果尝试提取的金额超过当前余额,您肯定不想默默地将余额限制为零。您不也想生成某种警告或错误消息吗?