Ho un decoratore come qui di seguitoCome passare argomenti extra a python decorator?
def myDecorator(test_func):
return callSomeWrapper(test_func)
def callSomeWrapper(test_func):
return test_func
@myDecorator
def someFunc():
print 'hello'
voglio migliorare questo decoratore di accettare un altro argomento, come di seguito
def myDecorator(test_func,logIt):
if logIt:
print "Calling Function: " + test_func.__name__
return callSomeWrapper(test_func)
@myDecorator(False)
def someFunc():
print 'Hello'
Ma questo codice dà l'errore,
TypeError: myDecorator() takes exactly 2 arguments (1 given)
Perché la funzione non passa automaticamente? Come faccio a passare esplicitamente la funzione alla funzione decoratore?
Balki: si prega di evitare l'uso di booleano come argomento, non è un approccio gd e ridurre del codice readliability –
@KitHo - è un flag booleano, in modo da utilizzare un valore booleano è l'approccio giusto. – AKX
@KitHo - che cos'è "gd"? È buono"? –