我为银行ATM写了一个简单的程序。该计划工作正常,我不知道如何在我提款或存款后更新新余额。因为在菜单功能中,我总是在输入引脚号后设置self._balance。问题必须在Bankdatabase中,解决此问题的最佳方法是什么?任何帮助表示赞赏。
答案 0 :(得分:1)
跟踪是否已输入有效的PIN码,如果输入了有效的PIN码,则不提示输入PIN /重新初始化余额。
答案 1 :(得分:0)
我对你的代码结构感到困惑。这看起来像许多不同类别的工作对我来说!我没有时间编写更完整的内容,但考虑重构代码,特别是考虑__init__
方法应该初始化类的所有属性,其中包括self.balance
之类的内容。不要用它来调用前端例程,之后用类似的东西来执行:
if __name__ == "__main__":
ATM = Savingaccount()
ATM.menu()
如果我是你,我会在提示用户的ATM上写最小班级,为其中有余额的帐户写一个班级。我的代码类似于:
class Account(object):
def __init__(self,acctholder,balance,pin):
self.acctholder = acctholder # name
self._balance = balance # amount as a decimal.Decimal
self.pin = pin # a hashed pin number
@staticmethod
def confirmPIN(pin, hash):
# hash a given PIN and check it against the hash
def deposit(self,amount):
self._balance += amount
def withdraw(self,amount,pin):
# hash the pin and check against self.pin
# if False, raise PermissionError
else:
self._balance -= amount
@property
def balance(self):
return self._balance
class ATM(object):
def __init__(self):
self.accounts = {#hash: <class Account>, ... }
def menu(self):
print("All the user options, and handle input and routing here")