Вызов вложенной функции в Python

У меня есть метод, который я разбил на более мелкие вложенные функции, чтобы разбить базу кода:

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

Есть ли способ запустить одну из вложенных функций сам по себе.например:

foo.do_this(x,y)

РЕДАКТИРОВАТЬ:

Я пытаюсь настроить кеширование на веб-сервере, который я создал с помощью pyryd_breaker

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)

Это мое понимание может быть неточным:

Теперь причина, по которой у меня есть это, заключается в том, что пространство имен используемый декоратором для создания ключа кэша, генерируется из функции и аргументов. Поэтому вы не можете просто поместить декоратор в getThis, поскольку переменная запроса уникальна, а кеш бесполезен. Итак, я создал внутреннюю функцию с повторяемыми аргументами (search_term).

Однако для аннулирования кеша (т. е. обновления) функция аннулирования требует, чтобы область действия знала о функции 'getData', поэтому она также должна быть вложенной. Поэтому мне нужно вызвать вложенную функцию. Вы, замечательные люди, ясно дали понять, что это невозможно, поэтому кто-нибудь может объяснить, как я могу сделать это с другой структурой?

15
задан user1474424 22 June 2012 в 11:07
поделиться