Variável local referenciada antes da atribuição em Python
Este tutorial irá explicar porque ocorre o erro local variable referenced before assignment
e como pode ser resolvido.
A variável local referenciada antes da atribuição
ocorre quando alguma variável é referenciada antes da atribuição dentro do corpo de uma função. O erro geralmente ocorre quando o código está tentando acessar a variável global. Como as variáveis globais têm escopo global e podem ser acessadas de qualquer lugar dentro do programa, o usuário geralmente tenta usar a variável global dentro de uma função.
Em Python, não precisamos declarar ou inicializar a variável antes de usá-la; uma variável é sempre considerada local por padrão. Portanto, quando o programa tenta acessar a variável global dentro de uma função sem especificá-la como global, o código retornará o erro variável local referenciada antes da atribuição
, uma vez que a variável sendo referenciada é considerada uma variável local.
a solução de local variable referenced before assignment
Erro em Python
Podemos declarar a variável como global usando a palavra-chave global
em Python. Depois que a variável é declarada global, o programa pode acessar a variável dentro de uma função e nenhum erro ocorrerá.
O código de exemplo a seguir demonstra o cenário de código em que o programa terminará com o erro “variável local referenciada antes da atribuição”.
count = 10
def myfunc():
count = count + 1
print(count)
myfunc()
Resultado:
UnboundLocalError: local variable 'count' referenced before assignment
Precisamos declarar a variável count
como global usando a palavra-chave global
para resolver este erro. O código de exemplo a seguir demonstra como o erro pode ser resolvido usando a palavra-chave global
no cenário de código acima.
count = 10
def myfunc():
global count
count = count + 1
print(count)
myfunc()
Resultado:
11