'int'对象不可调用错误python

时间:2013-04-05 19:23:07

标签: python int

嘿伙计,所以我得到这个“TypeError:'int'对象不可调用”错误,当我运行此代码时,我做了一些研究,我认为这是我的变量命名的东西?有人可以向我解释有什么问题吗?

class account(object):
    def set(self, bal):
        self.balance = bal
    def balance(self):
        return balance

以下是我的示例:

>>> a = account()
>>> a.set(50)
>>> a.balance()
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    a.balance()
TypeError: 'int' object is not callable

1 个答案:

答案 0 :(得分:13)

您正在使用实例属性balance屏蔽方法balance。重命名其中一个。您可以通过使用下划线预先挂起实例属性来重命名实例属性,例如:

def set(self, bal):
    self._balance = bal

def balance(self):
    return self._balance

实例上的属性胜过类上的属性(数据描述符除外;想想property s)。来自Class definitions documentation

  

类定义中定义的变量是类属性;它们由实例共享。可以使用self.name = value在方法中设置实例属性。类和实例属性都可以通过符号“self.name”访问,并且实例属性在以这种方式访问​​时会隐藏具有相同名称的类属性。