-2
class Account(object):
def __init__(self,holder, number, balance, credit_line = 1500):
self.holder = holder
self.number = number
self.balance = balance
self.credit_line = credit_line
def deposit(self, amount):
self.balance = amount
def withdraw(self, amount):
if(self.balance - amount < -self.credit_line):
return False
else:
self.balance -= amount
return True
def balance(self):
return self.balance
def holder(self):
return self.holder
def transfer(self, target, amount):
if(self.balance - amount < -self.credit_line):
#coverage insufficient
return False
else:
self.balance -= amount
target.balance += amount
return True
Guido = Account("Guido", 10 ,1000.50)
Guido.balance()
-------------------------------------------------------------------------
Traceback (most recent call last):
File "Account.py", line 31, in <module>
Guido.balance()
TypeError: 'float' object is not callable
'balance.php = amount'が' balance'関数を上書きします –
他の答えで問題が説明されていますが、 'balance'や' holder'メソッドのような「アクセサ」は一般的にPythonでは必要ありません。外部コードで属性にアクセスすることができます(この場合は同じ名前で問題につながります)。あとで値に特別な処理(例えば、小数点以下の桁数を四捨五入)を行う必要がある場合は、属性の検索を関数呼び出しに変えるために 'property'を使うことができます。 – Blckknght