Rufen Sie die verschachtelte Funktion in Python auf

Ich habe eine Methode, die ich in kleinere verschachtelte Funktionen aufgeteilt habe, um die Codebasis aufzuteilen:

def foo(x,y):
    def do_this(x,y):
        pass
    def do_that(x,y):
        pass
    do_this(x,y)
    do_that(x,y)
    return

Gibt es eine Möglichkeit, eine der verschachtelten Funktionen selbst auszuführen. z.B:

foo.do_this(x,y)

BEARBEITEN:

Ich versuche, das Caching auf einem Webserver einzurichten, den ich mit pyramid_breaker erstellt habe

def getThis(request):
    def invalidate_data(getData,'long_term',search_term):
         region_invalidate(getData,'long_term',search_term)
    @cached_region('long_term')
    def getData(search_term):
         return response
    search_term = request.matchdict['searchterm']
    return getData(search_term)

Dies ist meines Erachtens möglicherweise nicht korrekt:

Der Grund, warum ich das habe, ist, dass der Namespace, der vom Dekorateur zum Erstellen des Cache-Schlüssels verwendet wird, aus der Funktion und den Argumenten generiert wird. Sie können den Decorator daher nicht einfach auf getThis setzen, da die Anforderungsvariable eindeutig ist und der Cache unbrauchbar ist. Also habe ich die innere Funktion erstellt, die wiederholbare Argumente hat (search_term).

Um jedoch den Cache ungültig zu machen (dh zu aktualisieren), benötigt die Ungültigkeitsfunktion einen Bereich, in dem die Funktion 'getData' bekannt ist, und muss daher auch verschachtelt sein. Deshalb muss ich die verschachtelte Funktion aufrufen. Sie wundervolle Leute haben klar gemacht, dass es nicht möglich ist, also kann jemand erklären, wie ich es mit einer anderen Struktur machen könnte?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage