我遇到了eclipse和我的python装饰器的问题。 我使用装饰器自动管理通信错误。 当我使用装饰器时,默认情况下,装饰器将获得装饰函数的错误,如果不正常,则引发异常。
def error_handling_decor_2(function):
@wraps(function)
def wrapper(*args, **kwargs):
catch_error = kwargs.get('catch_error', True)
kwargs.pop('catch_error', None)
(ret_val, error_val) = function(*args, **kwargs)
if catch_error:
if error_val == 'OK':
return ret_val
else:
raise Exception('Problem')
else:
# return without any processing
return ret_val, error_val
return wrapper
因此,如果我希望装饰函数返回带有(ret_val, error)
的元组,我必须传递参数:catch_error=False
。
一切正常,唯一的问题是eclipse在编辑器上显示错误:Passing unexpected keyword argument 'catch_error' in function call
。
这是正确的,方法调用没有参数catch_error
,但装饰器确实处理它。
有没有人有想法避免看到这个错误?