Dado el siguiente código:variable de Python resolver
a = 0
def foo():
# global a
a += 1
foo()
Cuando se ejecuta, se queja de Python: UnboundLocalError: variable local 'a' hace referencia antes de la asignación
Sin embargo, cuando se trata de un diccionario ...
a = {}
def foo():
a['bar'] = 0
foo()
La cosa funciona muy bien ...
Alguien sabe por qué podemos hacer referencia a a en el 2 ° trozo de código, ¿pero no en el 1er?
Me pregunto por qué decidieron describirlo como un "capricho especial". Contraste con javascript donde 'a = 1' se asigna automáticamente al alcance global. Lo único bueno de eso es que puedes reconocer rápidamente el código basura por las ausencias de 'var a = 1' – aaronasterling