Como faço para passar argumentos extras para um decorador do Python?
Eu tenho um decorador como abaixo.
def myDecorator(test_func):
return callSomeWrapper(test_func)
def callSomeWrapper(test_func):
return test_func
@myDecorator
def someFunc():
print 'hello'
Eu quero melhorar este decorador para aceitar outro argumento como abaixo
def myDecorator(test_func,logIt):
if logIt:
print "Calling Function: " + test_func.__name__
return callSomeWrapper(test_func)
@myDecorator(False)
def someFunc():
print 'Hello'
Mas esse código dá o erro
TypeError: myDecorator () leva exatamente 2 argumentos (1 dado)
Por que a função não é passada automaticamente? Como faço para passar explicitamente a função para a função de decorador?