En Python 2.6,¿Por qué se rompen los cierres dentro del ejecutivo?
>>> exec "print (lambda: a)()" in dict(a=2), {}
2
>>> exec "print (lambda: a)()" in globals(), {'a': 2}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
File "<string>", line 1, in <lambda>
NameError: global name 'a' is not defined
>>> exec "print (lambda: a).__closure__" in globals(), {'a': 2}
None
esperaba que imprime 2
dos veces, y luego imprimir una tupla con un solo cell
. Es la misma situación en 3.1. ¿Que esta pasando?
+1. He estado actualizando este hilo una vez por minuto desde que se publicó para encontrar la respuesta a este. Gracias a ti ahora soy libre de dejar mi computadora por un tiempo y salir y disfrutar del sol. ¡Gracias! ;) –