我有一个接受 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')
最佳答案
您可以创建一个继承自 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
关于python - 如何获得自定义错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49834433/