Como faço para passar argumentos extras para um decorador do Python?
Eu tenho um decorador como abaixo.
<code>def myDecorator(test_func): return callSomeWrapper(test_func) def callSomeWrapper(test_func): return test_func @myDecorator def someFunc(): print 'hello' </code>
Eu quero melhorar este decorador para aceitar outro argumento como abaixo
<code>def myDecorator(test_func,logIt): if logIt: print "Calling Function: " + test_func.__name__ return callSomeWrapper(test_func) @myDecorator(False) def someFunc(): print 'Hello' </code>
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?