Изменить аргументы функции при вызове

Есть функция, внутри которой происходят один или несколько вызовов другой функции

def func(app):
    other_func('/test/', app)
    other_func('/test2/', app)

Могу ли я при вызове функции func изменить аргументы вызываемых ей функций? Например добавить путям префикс.

def discover(app, func, prefix):
    if prefix:
        pass # Тут должна быть логика, которая вызывает func с измененными аргументами
    else:
        func(app)

Ответы (1 шт):

Автор решения: eri

Если функцию определить внутри, то она увидит то что во внешней функции

def discover(app, func, prefix):
    prefix = prefix or '/'
    def func(app):
        nonlocal prefix
        other_func(prefix, app) 
    func(app)
→ Ссылка