‘int’ object is not callable 解决办法
问题:创建一个信用卡账户类,该类为银行账户类的子类。除了银行账户类的属性之外,该类还有信用额度属性,以及透支额属性。此外,该类还需要重写父类的取款方法,该方法在取款额超过账户余额且两者的差值不超过信用额度时,会修改透支额属性;而当差值超过了信用额度时则会提示交易失败。创建一个信用卡账户类对象,用户名为Sam,余额为1000元,信用额度为1000元。先取出700元,再取出1500元,看看结果如何。
class bank_count():
def __init__(self,name,balance):
self.name = name
self.balance = balance
def deposit_money(self,amount_money):
'''存款'''
self.balance +=amount_money
def withdraw_money(self,amount_money):
'''取款'''
self.balance -=amount_money
def get_banlance(self):
'''获取余额'''
print(self.balance)
def amend_balance(self,balance):
'''修改余额'''
self.balance = balance
def Transfer_account(self,bank_count,amount_money):
self.balance -= amount_money
bank_count.deposit_money(amount_money)
class Credit_Card(bank_count):
def __init__(self,name,balance,credic_amount_money):
super().__init__(name,balance)
self.credit_amount_money = credic_amount_money
def withdraw_money(self,amount_money):
D_value = amount_money - self.balance()
if D_value < 0 :
self.balance -= amount_money
elif D_value > self.credit_amount_money:
print("交易失败,超过限额")
else:
self.credit_amount_money -= D_value
Credit_Card_Sam = Credit_Card('Sam',1000,1000)
Credit_Card_Sam.withdraw_money(700)
print(Credit_Card_Sam.credit_amount_money)
Credit_Card_Sam.get_banlance()
Credit_Card_Sam.withdraw_money(1500)
出现错误:
Traceback (most recent call last):
File "F:/MyPython/MyPython/Test.py", line 35, in <module>
Credit_Card_Sam.withdraw_money(700)
File "F:/MyPython/MyPython/Test.py", line 26, in withdraw_money
D_value = amount_money - self.balance()
TypeError: 'int' object is not callable
Process finished with exit code 1
原因:错把属性值当方法进行使用
解决:改为
D_value = amount_money - self.balance