python中银行账户的继承与打印

时间:2017-07-17 15:05:26

标签: python python-3.x oop inheritance

这是我的银行帐户代码的一部分,我是OOP的新手,并为我的代码添加了一些继承,我遇到的问题是打印有兴趣的余额,当我打印它时我得到的值与没有兴趣的定期余额,给你的见解。

from random import randint


class BankAccount(object):
    def __init__(self, initial_balance=0):
        self.balance = initial_balance
    def deposit(self, amount):
        self.balance += amount
    def withdraw(self, amount):
        self.balance -= amount       
    def get_balance(self, initial_balance, rate):
        return self.get_balance() * self._rate

class BankAccountWithInterest(BankAccount):
  def __init__(self, initial_balance=0, rate=0.1):
     BankAccount.__init__(self, initial_balance)
     self._rate = rate           
  def interest(self):
     return self.balance * self._rate


balance = (randint(100, 500))
my_account = BankAccount(balance)
my_interest = BankAccountWithInterest(balance)
print(my_account.balance)
print(my_interest.balance)

2 个答案:

答案 0 :(得分:0)

print(my_interest.balance + my_interest.interest())

似乎可以返回您的期望。

my_interest.balance = my_interest.balance + my_interest.interest()
print(my_interest.balance)

还会以增加的兴趣更新余额。

答案 1 :(得分:0)

这里有几个问题,主要是你没有申请(调用)兴趣功能,这就是为什么你们两者都得到相同的平衡。你应该这样做:

print(my_account.balance)
print(my_interest.balance + my_interest.interest())

我还建议您在self._rate方法中将rate更改为get_balance,否则当您致电get_balance并尝试访问self._rate时可能会收到错误消息。您还应该让它返回self.balanceself.balance + rate,否则您将获得无限循环。