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
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
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
- 473 aulas
- 20 projetos
- 39h 26min
Blog | Mais populares

As diferenças de var, let e const

Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]

Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação A popularidade da automação de processos com o n8n está em alta, principalmente […]

