简体   繁体   中英

Python Call Parent Method from child method

I want to call the Method SavingsAccount.withdraw(600) but every time I get an exception TypeError: withdraw takes exactly 1 arguement(2 given) . How do I fix this? Please advise.

class BankAccount(object):
    def __init__(self):
        pass

    def withdraw(self):
        pass

    def deposit(self):
        pass


class SavingsAccount(BankAccount):
    def __init__(self):
        self.balance = 500

    def deposit(self, amount):
        if (amount < 0):
            return "Invalid deposit amount"
        else:
            self.balance += amount
            return self.balance

    def withdraw(self, amount):
        if ((self.balance - amount) > 0) and ((self.balance - amount) < 500):
            return "Cannot withdraw beyond the minimum account balance"
        elif (self.balance - amount) < 0:
            return "Cannot withdraw beyond the current account balance"
        elif amount < 0:
            return "Invalid withdraw amount"
        else:
            self.balance -= amount
            return self.balance


class CurrentAccount(BankAccount):
    def __init__(self, balance=0):
        super(CurrentAccount, self).__init__()

    def deposit(self, amount):
        return super(CurrentAccount, self).deposit(amount)

    def withdraw(self, amount):
        return super(CurrentAccount, self).withdraw(amount)


x = CurrentAccount();

print  x.withdraw(600)

The withdraw method in BankAccount is missing the amount:

class BankAccount(object):
    def __init__(self):
        pass

    def withdraw(self):   # <--- ADD THE AMOUNT HERE
        pass

Same with the deposit method

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM