class ValueErrorException(Exception):
pass
class BankAccount(object):
def __init__(self, balance):
self.balance = balance
def balance(self):
if self.balance<0:
raise ValueErrorException("Illegal Balance")
else:
return self.balance
x=银行账户(-10)
打印(x.balance)
应该打印错误,但它打印-10。我做错了什么
在init中,您将值-10分配给self.balance,您永远不会调用balance()方法。您可能需要使用属性和setter。这样,每次为天平分配值时,都会执行检查:
此外,ValueError是python中的内置异常,您不需要自己的异常类
您为此
BankAccount
类定义了属性.balance
和方法.balance()
。因为它们具有相同的名称,所以一个将覆盖另一个。确保它们有单独的名称,例如:然后调用
.balance()
方法(注意括号):这将引发所需的异常
相关问题 更多 >
编程相关推荐