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