English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste artigo, você aprenderá sobre variáveis globais, locais, não locais do Python e onde usá-las.
Em Python, as variáveis declaradas fora de uma função ou em escopo global são chamadas de variáveis globais. Isso significa que podem ser acessadas dentro ou fora da função.
Vamos ver um exemplo de como criar uma variável global em Python.
x = "global" def foo(): print("interno x:", x) foo() print("externo x:", x)
Quando executarmos o código, o resultado será:
interno x: global externo x: global
No código acima, declaramosxcriado como variável global e definido foo() para imprimir a variável globalx。Por fim, chamamos foo() e será impressoxdo valor.
se quiser modificarxdo valor.
x = "global" def foo(): x = x * 2 print(x) foo()
Quando executarmos o código, o resultado será:
Se precisar modificar
O que acontece com o valor?
Para implementar essa função, usamos a palavra-chave global. Para mais informações, acessePalavra-chave global do Python。
As variáveis declaradas dentro de uma função ou em escopo local são chamadas de variáveis locais.
def foo(): y = "local" foo() print(y)
Quando executarmos o código, o resultado será:
NameError: nome 'y' não está definido
A saída mostra um erro porque tentamos acessar uma variável local y no escopo global, e as variáveis locais só funcionam dentro de foo() ou em escopos locais.
Vamos ver um exemplo de como criar variáveis locais em Python.
Normalmente, declaramos uma variável dentro de uma função para criar uma variável local.
def foo(): y = "local" print(y) foo()
ao executar o código, ele produzirá:
local
Vamos vero problema anterior,ondexé uma variável global e queremos modificá-la dentro da função foo()x。
Aqui, mostraremos como usar 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()
Quando executarmos o código, o resultado será:
global global local
No código acima, declaramos x como uma variável global e y como uma variável local dentro da função foo(). Então, usamos o operador de multiplicação*Modifique a variável global x e imprima x e y ao mesmo tempo.
Após a chamada de foo(), o valor de x se torna global global, porque usamos x * 2Imprimimos duas vezes global. Em seguida, imprimimos o valor da variável local y, ou seja, a variável local.
x = 5 def foo(): x = 10 print("local x:", x) foo() print("global x:", x)
Quando executarmos o código, o resultado será:
local x: 10 global x: 5
No código acima, usamos o mesmo nome x para variável global e local. Quando imprimimos a mesma variável, obtemos resultados diferentes, porque a variável está declarada em dois escopos, ou seja, o escopo local dentro de foo() e o escopo global fora de foo().
Quando imprimimos a variável dentro de foo(), ela imprime local x: 10. Isso é chamado de escopo de variável local.
Da mesma forma, quando imprimimos a variável fora de foo(), ela imprime global x: 5. Isso é chamado de escopo global da variável.
Variáveis não locais são usadas para funções aninhadas que não têm escopo local definido. Isso significa que a variável não pode estar no escopo local nem no escopo global.
Vamos ver um exemplo de como criar uma variável global em Python.
Usamos a palavra-chave nonlocal para criar uma variável não local.
def outer(): x = "local" def inner(): nonlocal x x = "nonlocal" print("inner:", x) inner() print("outer:", x) outer()
Quando executarmos o código, o resultado será:
inner: nonlocal outer: nonlocal
No código acima, há uma função aninhada inner(). Usamos a palavra-chave nonlocal para criar uma variável não local. A função inner() é definida dentro da função external().
AtençãoSe alterarmos o valor de uma variável não local, essas alterações aparecerão na variável local.