exalt provides a convenient way to dynamically create closures and bind them to a custom namespace. This is primarily useful for preserving an execution-context when calling into a different function.
from exalt import promote
def baz():
return bar
def foo():
bar = "baz"
return promote(baz, **locals())()
print(foo())
↓
baz
pip3 install --user exalt
exalt heavily relies on CPython implementation details and probably shouldn't be used in a production environment.