Abajo pongo el POC que muestra que no anda como quiero:
>>> def foo():
... a = 1
... def bar():
... print locals()
... bar()
...
>>> foo()
{}
Como ven, no muestra a como posible variable.
En cambio, en este ejemplo, que debería tener el mismo comportamiento, sí muestra a como variable.
>>> def foo():
... a = 1
... def bar():
... a
... print locals()
... bar()
...
>>> foo()
{'a': 1}
¿Cómo hago para armar el diccionario de las variables que se pueden usar en una función en python?
Todo esto lo probé en una consola corriendo python 2.7.6.
Happy hacking,
Aureliano.