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