【发布时间】:2020-07-13 02:20:06
【问题描述】:
编写一个名为“CheckingAccount”的类,其中包含当前 账户余额(int)和以下方法:
init - 采用“balance”参数来初始化对象的数据(余额)。请记住,方法 init 实现为
___init__.withdraw - 接受输入参数“amount”并通过减少余额来修改数据。如果“金额”导致透支,减去 额外的20美元。这个方法应该返回余额。
deposit - 接受输入参数“amount”并通过将余额增加“amount”来修改数据。
我正在尝试解决上述问题,但我有点迷茫,这是我迄今为止最好的(今天更新了代码):
# write your code here
class CheckingAccount:
balance = 0
amount = 0
def __init__(self, balance = 0):
self.balance = balance
def withdraw(self, amount = 0):
if self.amount > self.balance:
self.balance -= 20
else:
self.balance -= 1
def deposit(self, amount = 0):
self.amount += amount
return amount
an = CheckingAccount(80)
an.withdraw(40)
print("Your old balance was {}. Your new balance is now {}.".format(an.balance))
我越来越接近了,但我的旧余额显示为 79 而不是 80,而我的新余额显示为 0,而我认为我预期的是 40。我觉得我错过了一些东西。
【问题讨论】:
-
是的,看起来不错,您只需要接受取款和存款方式的参数即可。
-
这似乎是一个功课问题,请阅读this。对于您的问题,您走在正确的轨道上。请注意,
withdraw和deposit采用输入参数。self对于类方法是必需的,因此您需要为这些方法提供第二个参数,即取款或存款的金额 -
然后你可以创建最后一个方法,我们称之为
getBalance,它会返回当前余额,你可以打印出来,做一些测试 -
@totok。我读了帖子。我明白你的观点。这就是为什么我尽我所能编写代码然后寻求帮助的原因。我不希望任何人完全为我做这个问题。 OOP 从来都不是我的强项,通过这里获得帮助比通过我的导师获得帮助要快。但我确实尽我所能解决问题,以免给这里的其他程序员造成负担。这就是我发布这篇文章的理由。
-
@runner16 是的,没问题,这就是为什么我对你的工作发表评论,你做得很好;)我只是将它发送给任何寻求家庭作业帮助的人作为预防措施。你实现了你想要的吗?