Qual a diferença de global e nonlocal no Python?
Neste artigo vamos ver qual a diferença de global e nonlocal no Python, com exemplos práticos e quando vamos utilizar cada um deles.

Fala programador(a), beleza? Bora aprender mais sobre Python!
A grande diferença entre global e nonlocal é que global faz referência ao escopo global
Já a declaração nonlocal faz referência ao escopo local acima do escopo atual
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 48min
O escopo global seria o ponto mais alto do código, onde estamos fora de funções, por exemplo
Veja uma maneira de utilizar o global:
a = 1 def imprimirVarGlobal(): global a print(a) def imprimirVarLocal(): a = 5 print(a) imprimirVarGlobal() imprimirVarLocal()
Teremos a saída:
1 5
Pois a primeira função utilizou a variável a que está declarada globalmente
Então entendemos o escopo global como o que estaria acima de todas as outras instruções

VPS Hostinger para seu sistema
10% OFF extraVPS com SSD NVMe e backups semanais. O cupom MATHEUSHORADECODAR é aplicado automaticamente pelo link.
Ver planos com 10% OFF →Entenda acima como hierarquicamente, pois pode estar em qualquer lugar do código, desde que fora de funções e classes
Apesar de que se costuma declarar estas variáveis logo nas primeiras linhas
Já o nonlocal, devemos criar um escopo dentro de um escopo
Ou seja, uma função dentro de uma função, por exemplo
Veja um exemplo prático:
def funcaoTeste():
x = 1
def imprimirNonLocal():
nonlocal x
print(x)
def imprimirLocal():
x = 2
print(x)
imprimirNonLocal()
imprimirLocal()
funcaoTeste()
Teremos a seguinte saída:
1 2
Então desta forma, criamos dois escopos, a função funcaoTeste é um escopo maior do que as duas outras
Tornando-se o escopo nonlocal para imprimirNonLocal e imprimirLocal
Porém só utilizamos a instrução em imprimirNonLocal, que fez o proposto
Quando utilizar cada uma das abordagens parte da lógica do programa
Precisamos acessar a variável global? Ou uma variável de escopo acima?
São as perguntas que você deve fazer, antes de utilizar cada uma das instruções
Conclusão
Neste artigo vimos a diferença de global e nonlocal no Python
Basicamente global é o escopo em nível mais alto hierarquicamente no programa, ou seja fora de funções e classes
E o nonlocal é um escopo acima de onde foi declarado
Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 30min
Blog | Mais populares

Como limitar números decimais em Python?
Neste artigo vamos aprender como limitar números decimais em Python, de uma forma simples com recursos da própria linguagem. Pra limitar casas decimais em Python […]

Como inverter uma string em Python
Neste artigo você vai aprender a como inverter uma string em Python, de uma maneira simples para você utilizar em seus programas Conteúdo também disponível […]
Como programar Python [dicas e códigos iniciantes aqui]
Python é uma linguagem de programação muito popular e uma de alto nível utilizada em diferentes tipos de aplicações, como para o desenvolvimento web, em Machine […]
