First: Are you sure you want to do this? It's usually not a good idea. That said,
def outer():
def inner(): pass
locals()['inner']()
You can use locals
to get a dictionary of local variable values, then look up the value of 'inner'
to get the function. Don't try to edit the local variable dict, though; it won't work right.
If you want to access the inner function outside the outer function, you'll need to store it somehow. Local variables don't become function attributes or anything like that; they're discarded when the function exits. You can return the function:
def outer():
def inner(): pass
return inner
nested_func = outer()
nested_func()