tengo un decorador, como a continuación¿Cómo pasar argumentos adicionales a python decorator?
def myDecorator(test_func):
return callSomeWrapper(test_func)
def callSomeWrapper(test_func):
return test_func
@myDecorator
def someFunc():
print 'hello'
quiero mejorar este decorador para aceptar otro argumento, como a continuación
def myDecorator(test_func,logIt):
if logIt:
print "Calling Function: " + test_func.__name__
return callSomeWrapper(test_func)
@myDecorator(False)
def someFunc():
print 'Hello'
Pero este código da el error,
TypeError: myDecorator() takes exactly 2 arguments (1 given)
¿Por qué es la función no pasó automáticamente? ¿Cómo transfiero explícitamente la función a la función de decorador?
balki: por favor, evite usar el booleano como su argumento, no es un enfoque gd y reducir de código readliability –
@KitHo - es un indicador booleano, así que usar un valor booleano es el enfoque correcto. – AKX
@KitHo - ¿Qué es "gd"? Esta bien"? –