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