Ir para o conteúdo
Exceções de PythonErro
UnboundLocalError

UnboundLocalError

Uma variável local foi referenciada antes de receber um valor.

python

O que causa este erro

Você leu uma variável antes de atribuí-la dentro da mesma função. O Python detecta a atribuição e trata a variável como local em toda a função, por isso a leitura antes da atribuição falha. Isso ocorre com frequência ao tentar modificar uma variável global sem a palavra-chave global.

Como corrigir

Use a palavra-chave global para referenciar variáveis globais: global x. Ou use nonlocal para variáveis de escopo envolvente. Reestruture o código para atribuir a variável antes de lê-la. Passe o valor como parâmetro da função.

Exemplo

x = 10
def f(): print(x); x = 20
f()  # UnboundLocalError
Documentação Oficial

Códigos de Erro Relacionados