Wywołaj zagnieżdżoną funkcję w Pythonie

Mam metodę, którą podzieliłem na mniejsze zagnieżdżone funkcje, aby rozbić bazę kodu:

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

Czy istnieje sposób na samodzielne uruchomienie jednej z zagnieżdżonych funkcji. na przykład:

foo.do_this(x,y)

EDYTOWAĆ:

Próbuję skonfigurować buforowanie na serwerze WWW, który zbudowałem przy użyciu piramidy

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)

To moje zrozumienie może nie być dokładne:

Teraz powodem jest to, że przestrzeń nazw używana przez dekoratora do tworzenia klucza pamięci podręcznej jest generowana z funkcji i argumentów. Dlatego nie można po prostu umieścić dekoratora w getThis, ponieważ zmienna żądania jest unikalna, a pamięć podręczna jest bezużyteczna. Dlatego stworzyłem wewnętrzną funkcję, która ma powtarzalne argumenty (search_term).

Jednak, aby unieważnić pamięć podręczną (tj. Odświeżyć), funkcja unieważnienia wymaga zasięgu, aby poznać funkcję „getData”, dlatego też musi być zagnieżdżona. Dlatego muszę wywołać funkcję zagnieżdżoną. Wy, cudowni ludzie, wyjaśniliście, że nie jest to możliwe, więc czy ktoś jest w stanie wyjaśnić, jak mogę to zrobić z inną strukturą?

questionAnswers(6)

yourAnswerToTheQuestion