我得到了这个,我期望它在打印x.withdraw()时能打印410。
Kyle 12345 500
Traceback (most recent call last):
File "bank.py", line 21, in <module>
print x.withdraw()
TypeError: 'int' object is not callable
这是我的代码:
class Bank:
def __init__(self, name, id, balance, withdraw):
self.name = name
self.id = id
self.balance = balance
self.withdraw = withdraw
def print_info(self):
return "%s %d %d" % (self.name, self.id, self.balance)
def withdraw(self):
if self.withdraw > self.balance:
return "ERROR: Not enough funds for this transfer"
elif self.withdraw < self.balance and self.withdraw >= 0:
self.balance = self.balace - self.withdraw
return self.balance
else:
return "Not a legitimate amount of funds"
x = Bank("Kyle", 12345, 500, 90)
print x.print_info()
print x.withdraw()
我是否需要在类本身中修复某些问题,或者我的方法调用有问题?
您在实例上设置具有相同名称的属性:
self.withdraw = withdraw
您正在尝试调用的是该属性,而不是方法。Python不会区分方法和属性,它们也不位于单独的命名空间中。
为属性使用其他名称;withdrawn
(退出的过去时)作为更好的属性名称浮现在脑海:
class Bank:
def __init__(self, name, id, balance, withdrawn):
self.name = name
self.id = id
self.balance = balance
self.withdrawn = withdrawn
def print_info(self):
return "%s %d %d" % (self.name, self.id, self.balance)
def withdraw(self):
if self.withdrawn > self.balance:
return "ERROR: Not enough funds for this transfer"
elif self.withdrawn < self.balance and self.withdrawn >= 0:
self.balance = self.balance - self.withdrawn
return self.balance
else:
return "Not a legitimate amount of funds"
(我也纠正了一个错字;您曾balace
在打算使用的位置使用过balance
)。
问题内容: 给定以下整数和计算 结果是: 如何将输出舍入为整数? 问题答案: 给定以下整数和计算 结果是: 如何将输出舍入为整数?
问题内容: 我是Python的新手,并且正在学习教程。本教程中有一个示例: 现在,在教程中,。但就我而言,我得到以下错误: 问题答案: 好像你已经用指向类实例的相同名称遮盖了指向类的内置名称。这是一个例子: 我相信这是显而易见的。Python将对象名称(函数和类也是对象)存储在字典中(命名空间实现为字典),因此你可以在任何范围内重写几乎任何名称。它不会显示为某种错误。如你所知,Python强调“特
问题内容: 我有以下代码 当我运行它时,我得到了: 这是为什么?怎么修? 问题答案: 将变量称为。它掩盖了内置功能。
我是Python的新手,遵循教程。教程中有一个的例子: 现在,在教程中,。但在我的例子中,我得到了以下错误: 请告诉我我错在哪里。我搜索所以这个,但它是不同的。
问题内容: 码: 第一次工作,然后第二次出现错误: 有人知道为什么是这样吗? 我已经尝试过了,但出现错误: 问题答案: 这就是问题: 你正在重新定义什么意思。是字符串类型的内置Python名称,你不想更改它。 为本地变量使用其他名称,然后删除该语句。
问题内容: 我正在尝试运行一个for循环。这是我遇到问题的代码部分: 因此,我的目的是遍历aldurstengd_ororka,对于字典中的每个“年龄”元组,我为元组中的每个“项目”运行另一个for循环。我得到的错误是 TypeError:“ int”对象不可迭代 问题答案: 如果是字典,则此表达式: 是一个错误。也许您的意思是: 编辑:您看到的错误是非常有趣的,我确实使用此代码段重现了它: 代码