Jak przekazać dodatkowe argumenty do dekoratora Pythona?
Mam dekoratora jak poniżej.
<code>def myDecorator(test_func): return callSomeWrapper(test_func) def callSomeWrapper(test_func): return test_func @myDecorator def someFunc(): print 'hello' </code>
Chcę ulepszyć tego dekoratora, aby zaakceptować inny argument, jak poniżej
<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>
Ale ten kod daje błąd,
TypeError: myDecorator () pobiera dokładnie 2 argumenty (1 podany)
Dlaczego funkcja nie jest automatycznie przekazywana? Jak jawnie przekazać funkcję do dekoratora?