簡體   English   中英

Python繼承-我在做什么錯?

[英]Python Inheritance - What am I doing wrong?

我試圖運行一個繼承示例,但不知道為什么我的輸出不正確。 下面是代碼。

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

您的MinimumBalance(50)實例的余額為0。 a對象是獨立的,它是一個單獨的實例,該條目具有的余額無關緊要。 MinimumBalance()類具有Balance所有功能,並進行了一些調整,因此您只需要與b實例完全交互即可。

而是將余額存入b

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

您的繼承結構正確,但是您已經創建了兩個對象。 MinimumBalance現在也是一個BankAccount,但具有不同的提款功能。 您應該將其稱為BankAccountWithMinimumBalance。 然后,您只需創建一個BankAccountWithMinimumBalance並使用它,而不是創建兩個對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM