Vu le code suivant:variables Python résolution
a = 0
def foo():
# global a
a += 1
foo()
Effectué, Python se plaint: UnboundLocalError: variable locale 'a' fait référence avant l'affectation
Cependant, quand il est un dictionnaire ...
a = {}
def foo():
a['bar'] = 0
foo()
La chose exécute très bien ...
Quelqu'un sait pourquoi nous pouvons référencer un dans le 2ème morceau de code, mais pas le 1er?
Je me demande pourquoi ils ont décidé de le décrire comme une «bizarrerie spéciale»? Contraste avec javascript où 'a = 1' affecte automatiquement à la portée globale! La seule bonne chose à ce sujet est que vous pouvez reconnaître rapidement le code de déchet par les absences de 'var a = 1' – aaronasterling