问题描述
假设我有这个类,我希望装饰器处理异常:
class A:
def __init__(self,start: bool):
self.start = start
def enc(self,data):
try:
if self.start:
return data.encode()
return 'ok'
except AttributeError:
raise Exception('oh no')
def dec(self,data):
try:
if self.start:
return data.decode()
return 'ok'
except AttributeError:
raise Exception('oh no')
(这不起作用,@A.type_exc_handler NameError: name 'A' is not defined
):
class A:
def __init__(self,start: bool):
self.start = start
def type_exc_handler(self,func):
def inner(self,*args,**kwargs):
try:
func(self,**kwargs)
except AttributeError:
raise TypeError(f"oh no")
return inner
@A.type_exc_handler
def enc(self,data):
if self.start:
return data.encode()
return 'ok'
@A.type_exc_handler
def dec(self,data):
if self.start:
return data.decode()
return 'ok'
我怎样才能做到这一点?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)