継承の例を実行しようとしていて、なぜ出力が正しくないのかわかりません。以下はコードです。Python継承 - 何が間違っているのですか?
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
代わりにどのような出力を期待しましたか? –
間違ったインスタンスに保存しています。 a = BankAccount() b.deposit(100) b.withdraw(40) – arshpreet
私はあなたが考えることを継承しないと思います。 'a = BankAccount(); b = MinimumBalance(50) 'は* 2つの*オブジェクトを作成します。 'a'は' BankAccount'型で、 'MinimumBalance'型の' b'型です。 'a'への入金は' a'の内部状態を変更するだけで、 'BankAccount'クラスの変更ではなく、確かに' MinimumBalance'のインスタンスの変更ではありません。 – MisterMiyagi