![]() |
Erro UnboundLocalError no Python: O Que é e Como Corrigir |
|
@CanalQb |
O erro UnboundLocalError no Python ocorre quando você tenta acessar uma variável local antes de atribuir um valor a ela. Isso acontece quando a variável é declarada em um escopo local, como dentro de uma função, e você tenta usá-la antes da inicialização.
Exemplo que gera UnboundLocalError
def minha_funcao():
print(limpaumavez)
limpaumavez = True
minha_funcao()
Nesse exemplo, a variável limpaumavez
é referenciada antes de ser definida, o que causa o erro.
Como corrigir o erro
Para evitar esse problema, defina um valor para a variável antes de acessá-la:
def minha_funcao():
limpaumavez = True
print(limpaumavez)
minha_funcao()
Dessa forma, a variável é inicializada antes do uso e o erro é evitado.
Entendendo o erro com variáveis globais
Outro cenário comum ocorre quando você deseja usar uma variável global dentro de uma função. Por padrão, ao atribuir um valor a uma variável dentro de uma função, o Python a trata como local, mesmo que exista uma global com o mesmo nome.
Considere o código abaixo:
limpaumavez = False
def minha_funcao():
if limpaumavez == False:
print("A variável ainda não foi limpa.")
else:
print("A variável já foi limpa.")
minha_funcao()
Esse código gera o erro UnboundLocalError
porque a variável é referenciada antes de ser inicializada localmente.
Como usar a variável global corretamente
Para acessar e modificar uma variável global dentro de uma função, utilize a palavra-chave global
:
limpaumavez = False
def minha_funcao():
global limpaumavez
if limpaumavez == False:
print("A variável ainda não foi limpa.")
else:
print("A variável já foi limpa.")
minha_funcao()
Assim, o Python entende que limpaumavez
se refere à variável global, evitando o erro.
Dicas adicionais para evitar UnboundLocalError
- Inicialize variáveis antes de usá-las: Sempre defina um valor inicial dentro do escopo onde a variável será usada.
- Use global com cuidado: A palavra-chave
global
deve ser usada apenas quando realmente quiser alterar uma variável global. - Evite reutilizar nomes de variáveis globais localmente: Isso pode confundir o Python e causar erros inesperados.
Com essas práticas, você terá um código Python mais robusto e livre do erro UnboundLocalError
.
Responsabilidade: Ao trabalhar com programação e desenvolvimento, é importante analisar cuidadosamente seu código e entender os conceitos antes de aplicar mudanças, evitando erros e problemas futuros.
Fontes e mais informações: