嘿伙计,所以我得到这个“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
答案 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
”访问,并且实例属性在以这种方式访问时会隐藏具有相同名称的类属性。