¿Cómo paso argumentos adicionales a un decorador de Python?
Tengo un decorador como el de abajo.
<code>def myDecorator(test_func): return callSomeWrapper(test_func) def callSomeWrapper(test_func): return test_func @myDecorator def someFunc(): print 'hello' </code>
Quiero mejorar este decorador para aceptar otro argumento como el siguiente
<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>
Pero este código da el error,
TypeError: myDecorator () toma exactamente 2 argumentos (1 dado)
¿Por qué la función no se pasa automáticamente? ¿Cómo paso la función explícitamente a la función decoradora?