Bindings extraños en python
El comportamiento de locals() en python es extraño. ¿Por qué no me muestra siempre todas las variables por las que clausura? (pero sí muestra algunas :-/). ¿Como hago para obtenerlas todas?
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}