2
我有一个装饰器,我使用一些类的方法。它看起来像这样我可以在类方法和静态方法上使用相同的装饰器吗?
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
说法?
是'总是logger'第二个参数? – jonrsharpe
对于我想要在记录器上使用装饰器的情况始终需要。我做了关键字参数,以便可以改变顺序 – LetsPlayYahtzee
在这种情况下,只需忽略'args [0]'是'self'的事实,那么它可以使用或不使用它。 – jonrsharpe