Python继承 - 我做错了什么?

时间:2016-07-01 11:36:15

标签: python python-3.x

我正在尝试运行继承的示例,并且不知道为什么我的输出不正确。以下是代码。

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

    def deposit(self,amount):
        self.balance += amount
        print(self.balance)

    def withdraw(self,amount):
        self.balance -= amount
        print(self.balance)


class MinimumBalance(BankAccount):
    def __init__(self,min_bal):
        BankAccount.__init__(self)
        self.min_balance=min_bal

    def withdraw(self,amount):

        if self.balance - amount < self.min_balance:
            print("Balance is LOW")
        else:
            BankAccount.withdraw(self,amount)

a=BankAccount()
b=MinimumBalance(50)
a.deposit(100)
b.withdraw(40)

输出结果为:

100
Balance is LOW

2 个答案:

答案 0 :(得分:3)

您的MinimumBalance(50)实例的余额为0. a对象是独立的,它是一个单独的实例,它与该条目的平衡无关。 MinimumBalance()类具有Balance的所有功能,并进行了一些调整,因此您只需完全与b实例进行交互。

b上存入余额:

b = MinimumBalance(50)
b.deposit(100)
b.withdraw(40)

答案 1 :(得分:0)

您的继承构造是正确的,但是您已经创建了两个对象。 MinimumBalance现在也是BankAccount但具有不同的撤销功能。您应该将其称为BankAccountWithMinimumBalance,而不是它。然后,您只需创建一个BankAccountWithMinimumBalance并使用它,而不是制作两个对象。