如何使用类使用变量来调用对象?

时间:2019-04-29 20:29:41

标签: python class object object-oriented-database onlinebanking

我正在尝试通过在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

1 个答案:

答案 0 :(得分:2)

您的类具有savings中定义的名为__init__的属性,以及具有相同名称的方法(函数)。当您引用它时,解释器将不知道您是否要调用该方法或获取该属性。

将方法名称从savings更改为其他名称,例如make_savings

def make_savings(self, amount):

代替

def savings(self, amount):

应该工作