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