nonlocal Declarar variável não global de escopo externo

Última atualização: 2026-09-22

nonlocal Declarar variável não global de escopo externo

nonlocal name informa que name dentro do corpo da função se refere à variável do escopo externo mais próximo (mas não global).

CategoriaPalavras-chave e Instruções
TipoPalavra-chave / Instrução
Versão do Pythonall

📝 Sintaxe

nonlocal name [, name]*

▶ Exemplo

Edite o código, clique em Executar e veja o resultado no painel de saída:

Saída:

1 2
Mais estudos de caso em breve — aguarde.

❓ Perguntas frequentes

QO que acontece se eu modificar uma variável externa dentro de uma função aninhada sem `nonlocal`?
ACria-se uma variável local de mesmo nome na função interna; o valor da variável externa não muda, e você pode até receber `UnboundLocalError`. Para modificar a variável externa, declare `nonlocal` primeiro.
QO `nonlocal` pode apontar para uma variável global?
ANão. `nonlocal` deve vincular-se a uma variável que já exista em algum escopo de função que a envolva. Se não houver tal variável, você recebe `SyntaxError: no binding for nonlocal 'x' found`.
Q`nonlocal` e `global` podem ser usados juntos?
ASim, mas apenas para nomes diferentes. O mesmo nome não pode ser declarado `global` e `nonlocal` ao mesmo tempo; fazer isso gera um `SyntaxError`.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%