Variáveis globais, locais e não locais do Python
Variáveis globais, locais e não locais do Python
Neste tutorial, você aprenderá sobre variáveis globais do Python, variáveis locais, variáveis não locais e onde usá-las.
Vídeo:variáveis locais e globais do Python
Variáveis globais
Em Python, uma variável declarada fora da função ou no escopo global é conhecida como variável global. Isso significa que uma variável global pode ser acessada dentro ou fora da função.
Vamos ver um exemplo de como uma variável global é criada em Python.
Exemplo 1:criar uma variável global
x = "global"
def foo():
print("x inside:", x)
foo()
print("x outside:", x)
Saída
x inside: global x outside: global
No código acima, criamos x como uma variável global e definiu um
foo()
para imprimir a variável global x . Por fim, chamamos o foo()
que imprimirá o valor de x . E se você quiser alterar o valor de x dentro de uma função?
x = "global"
def foo():
x = x * 2
print(x)
foo()
Saída
UnboundLocalError: local variable 'x' referenced before assignment
A saída mostra um erro porque o Python trata x como uma variável local e x também não está definido dentro de
foo()
. Para fazer isso funcionar, usamos o
global
palavra-chave. Visite Python Global Keyword para saber mais. Variáveis locais
Uma variável declarada dentro do corpo da função ou no escopo local é conhecida como variável local.
Exemplo 2:acessando variável local fora do escopo
def foo():
y = "local"
foo()
print(y)
Saída
NameError: name 'y' is not defined
A saída mostra um erro porque estamos tentando acessar uma variável local y em um escopo global enquanto a variável local só funciona dentro de
foo()
ou âmbito local. Vamos ver um exemplo de como uma variável local é criada em Python.
Exemplo 3:criar uma variável local
Normalmente, declaramos uma variável dentro da função para criar uma variável local.
def foo():
y = "local"
print(y)
foo()
Saída
local
Vamos dar uma olhada no problema anterior onde x era uma variável global e queríamos modificar x dentro de
foo()
. Variáveis globais e locais
Aqui, mostraremos como usar variáveis globais e variáveis locais no mesmo código.
Exemplo 4:usando variáveis globais e locais no mesmo código
x = "global "
def foo():
global x
y = "local"
x = x * 2
print(x)
print(y)
foo()
Saída
global global local
No código acima, declaramos x como global e y como uma variável local no
foo()
. Em seguida, usamos o operador de multiplicação *
para modificar a variável global x e imprimimos ambos x e s . Depois de chamar o
foo()
, o valor de x torna-se global global
porque usamos o x * 2
para imprimir duas vezes global
. Depois disso, imprimimos o valor da variável local y ou seja, local
. Exemplo 5:variável global e variável local com o mesmo nome
x = 5
def foo():
x = 10
print("local x:", x)
foo()
print("global x:", x)
Saída
local x: 10 global x: 5
No código acima, usamos o mesmo nome x para variável global e variável local. Obtemos um resultado diferente quando imprimimos a mesma variável porque a variável é declarada em ambos os escopos, ou seja, o escopo local dentro de
foo()
e escopo global fora de foo()
. Quando imprimimos a variável dentro de
foo()
ele gera local x: 10
. Isso é chamado de escopo local da variável. Da mesma forma, quando imprimimos a variável fora do
foo()
, ele gera
global x:5
. Isso é chamado de escopo global da variável. Variáveis não locais
Variáveis não locais são usadas em funções aninhadas cujo escopo local não está definido. Isso significa que a variável não pode estar no escopo local nem no global.
Vamos ver um exemplo de como uma variável não local é usada em Python.
Usamos
nonlocal
palavras-chave para criar variáveis não locais. Exemplo 6:crie uma variável não local
def outer():
x = "local"
def inner():
nonlocal x
x = "nonlocal"
print("inner:", x)
inner()
print("outer:", x)
outer()
Saída
inner: nonlocal outer: nonlocal
No código acima, há um
inner()
aninhado função. Usamos nonlocal
palavras-chave para criar uma variável não local. O inner()
função é definida no escopo de outra função outer()
. Observação :Se alterarmos o valor de uma variável não local, as alterações aparecem na variável local.
python
- Variáveis C, Constantes e Literais
- Palavras-chave e identificadores do Python
- Declaração Python, Recuo e Comentários
- Variáveis, constantes e literais do Python
- Conversão de tipo Python e conversão de tipo
- Entrada, Saída e Importação do Python
- Palavra-chave global do Python
- Números Python, Conversão de Tipos e Matemática
- Gerenciamento de diretórios e arquivos Python
- Erros do Python e exceções incorporadas