我有一个基本类,它接受2个整数,但如果我想控制变量的赋值,我该怎么做并提出一个定义的错误信息(隐藏实现)。
即。
class MyClass():
def __init__(self, var1, var2):
try:
if var1 < 5:
self.var1 = var1
self.var2 = var2
else:
raise ValueError
except ValueError:
print('Custom Error Message')
答案 0 :(得分:5)
您可以创建一个继承自ValueError
:
class MyException(ValueError):
pass
然后,只需提出例外
class MyClass():
def __init__(self, var1, var2):
if var1 < 5:
self.var1 = var1
self.var2 = var2
else:
raise MyException('Custom Error Message')
然而,创建一个装饰器来包装__init__
方法更简洁:
def check_val(f):
def wrapper(cls, v1, v2):
if v1 >= 5:
raise MyException("Custom Error Message")
return f(cls, v1, v2)
return wrapper
class MyClass():
@check_val
def __init__(self, var1, var2):
self.var1 = var1
self.var2 = var2