银行ATM程序

时间:2014-03-22 01:45:04

标签: python class bank

我为银行ATM写了一个简单的程序。该计划工作正常,我不知道如何在我提款或存款后更新新余额。因为在菜单功能中,我总是在输入引脚号后设置self._balance。问题必须在Bankdatabase中,解决此问题的最佳方法是什么?任何帮助表示赞赏。

2 个答案:

答案 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")