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 Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
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 SAAS com IA
Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!
- 291 aulas
- 18 projetos
- 24h 17min
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 […]

ChatGPT: o que é, como usar, dicas e como acessar login
ChatGPT é uma ferramenta de processamento de linguagem natural (NLP) baseada na arquitetura GPT-3.5, desenvolvida pela OpenAI. Sua criação representa um marco significativo no campo […]

