Вызов вложенной функции в 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)
EDIT:
Я пытаюсь настроить кэширование на веб-сервере, который я создал с помощью pyramid_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». Функция так и должна быть вложенной. Поэтому мне нужно вызвать вложенную функцию. Вы, замечательные люди, ясно дали понять, что это невозможно, поэтому кто-то может объяснить, как я могу сделать это с другой структурой?