С учетом следующего кода:
a = 0
def foo():
# global a
a += 1
foo()
При запуске Python жалуется: UnboundLocalError: локальная переменная 'a' ссылается до присваивания
Однако, когда это словарь ...
a = {}
def foo():
a['bar'] = 0
foo()
Все работает отлично ...
Кто-нибудь знает, почему мы можем ссылаться на 2-й фрагмент кода, но не на 1-й ?