我有一个装饰器,我在一些类方法上使用。看起来像这样
def api_caller(logger_name):
def api_caller_decorator(method):
@wraps(method)
def caller_wrapper(self, *args, **kwargs):
logger = log_wrap(logger_name)
kwargs['api'] = create_api_instance(kwargs['api'])
logger.info('worker authenticated')
return method(self, logger=logger, *args, **kwargs)
return caller_wrapper
return api_caller_decorator
我想在类之外使用那个装饰器,有没有办法在不重新定义和手动排除self
参数的情况下完成它?
答案 0 :(得分:0)
由于您未使用self
,因此可以将其包含在可选的参数中:
@wraps(method)
def caller_wrapper(*args, **kwargs):
...
return method(logger=logger, *args, **kwargs)