这是我的银行帐户代码的一部分,我是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)
答案 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.balance
或self.balance + rate
,否则您将获得无限循环。