首页 > 解决方案 > 无法从我使用 oop 建立的银行取款

问题描述

所以我在 oop 中编写了一个代码,它可以让你将钱存入银行,也可以取款。我解决了可以存钱但无法从银行取款的部分。我会很感激一个固定的答案。谢谢!

class Bank:
    def __init__(self,name,accountNumber,totalBalance):
        self.name = name
        self.accountNumber = {}
        self.totalBalance = {}
    def deposit(self):
        print("What is your account number?")
        x = input()
        print("What balance are you depositing?")
        y = input()
        self.accountNumber[x] = y
        print(self.accountNumber)
    def withdraw(self):
        print("What is your account number?")
        s = int(input())
        print("What balance are you withdrawing?")
        f = int(input())
        self.accountNumber[s] = self.accountNumber[s] - f
        print(self.accountNumber)
Bank1 = Bank("MONEYYYYY",1234,53)
Bank1.deposit()
Bank1.withdraw()

如果您知道为什么它不起作用,那么如果您能告诉我原因并修复它,我将不胜感激,谢谢!

标签: oopbank

解决方案


您的解决方案设计还有其他问题,但要解决这个特定问题,您要从 fromself.accountNumber[s]而不是 from中减去提款金额self.totalBalance。您还在同一个错误字段中设置了存款金额。

class Bank:
    def __init__(self,name,accountNumber,totalBalance):
        self.name = name
        self.accountNumber = {}
        self.totalBalance = {}
    def deposit(self):
        print("What is your account number?")
        x = input()
        print("What balance are you depositing?")
        y = input()
        if self.totalBalance.has_key(x) == False:
            self.totalBalance[x] = 0
        self.totalBalance[x] += y 
        print(self.accountNumber)
    def withdraw(self):
        print("What is your account number?")
        s = int(input())
        print("What balance are you withdrawing?")
        f = int(input())
        if self.totalBalance.has_key(s) == False:
            self.totalBalance[s] = 0
        self.totalBalance[s] = self.totalBalance[s] - f
        print(self.accountNumber)
Bank1 = Bank("MONEYYYYY",1234,53)
Bank1.deposit()
Bank1.withdraw()

推荐阅读