TypeError:int和float

时间:2016-09-17 18:26:41

标签: python python-2.7

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

2 个答案:

答案 0 :(得分:1)

您正在覆盖__init__方法中的方法_balance。您可以将字段名称更改为balance,也可以只删除Guido.balance方法并使用guido = Account(...)

另请注意,您应该将变量命名为以小写字母开头(即Guido,而不是var a = $('.ela'); var b = $('.elb'); var top_a = $('.ela').offset().top; var top_b = $('.elb').offset().top;

答案 1 :(得分:0)

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 amount > self.balance:
           print "Amount greater than available balance"

        else:
            self.balance -= amount
            return True

    def bala_nce(self):
        return self.balance
    def hold_er(self):
        return self.holder
    def num(self):

        return self.number


    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 ,10000.100)
guido.withdraw(2300.100)

print "Account name: " ,guido.hold_er()
print  "available balance: $",guido.bala_nce()

感谢你很快...............它现在正在工作