Wie gebe ich zusätzliche Argumente, um eine Python-decorator?

Habe ich eine decorator wie folgt Aussehen.

def myDecorator(test_func):
    return callSomeWrapper(test_func)
def callSomeWrapper(test_func):
    return test_func
@myDecorator
def someFunc():
    print 'hello'

Möchte ich zur Verbesserung dieser Dekorator zu akzeptieren, ein anderes argument, wie unten

def myDecorator(test_func,logIt):
    if logIt:
        print "Calling Function: " + test_func.__name__
    return callSomeWrapper(test_func)
@myDecorator(False)
def someFunc():
    print 'Hello'

Aber dieser code gibt den Fehler,

TypeError: myDecorator() takes exactly 2 arguments (1 given)

Warum wird die Funktion nicht automatisch weitergeleitet? Wie kann ich explizit übergeben Sie der Funktion, die an den Dekorator-Funktion?

balki: bitte vermeiden Sie die Verwendung von boolean als argument, es ist kein gd Ansatz und reduzieren-code readliability
es ist ein boolean-flag, also ein boolean-Wert ist der richtige Ansatz.
was ist "gd"? Ist es "gut"?

InformationsquelleAutor balki | 2012-04-16

Schreibe einen Kommentar