English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de Python

Controle de Fluxo do Python

Função do Python

Tipos de Dados do Python

Controle de Fluxo do Python

Objetos e Classes do Python

Data e Hora do Python

Conhecimento Avançado do Python

Manual de Referência do Python

Variáveis Globais, Locais e Não Locais do Python

Neste artigo, você aprenderá sobre variáveis globais, locais, não locais do Python e onde usá-las.

Variáveis globais

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.

Exemplo1:Criação de uma variável global

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

Variáveis locais

As variáveis declaradas dentro de uma função ou em escopo local são chamadas de variáveis locais.

Exemplo2:Acesso a variável local fora do escopo

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.

Exemplo3:Criação de variáveis locais

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

Variáveis globais e locais

Aqui, mostraremos como usar variáveis globais e locais no mesmo código.

Exemplo4:No mesmo código, use variáveis globais e locais

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.

Exemplo5: Variáveis globais e locais com o mesmo nome

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ável não local

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.

Exemplo6: 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.