我正在尝试通过在Python上使用面向对象的编程来解决“保持变化”的问题。我上了课:
class BankAccount:
def __init__(self):
self.savings = 100
def savings (self, amount):
self.savings = self.savings + amount
return self.savings
def getSavings (self):
return self.savings
然后,我制作了一个单独的文件,尝试从文件中提取数字,将它们四舍五入,然后将差额存入储蓄帐户。但是,当我要求节省并尝试使用变量添加到节省中时,我不断收到一条错误消息,指出它必须是int
。
def main():
account1 = BankAccount()
file1 = open("data.txt","r")
s = 0 # to keep track of the new savings
for n in file1:
n = float(n) #lets python know that the values are floats
z= math.ceil(n) #rounds up to the whole digit
amount = float(z-n)
s = int(amount + s)
x = (account1.savings(s)) # <<this is where the error occurs
答案 0 :(得分:2)
您的类具有savings
中定义的名为__init__
的属性,以及具有相同名称的方法(函数)。当您引用它时,解释器将不知道您是否要调用该方法或获取该属性。
将方法名称从savings
更改为其他名称,例如make_savings
def make_savings(self, amount):
代替
def savings(self, amount):
应该工作