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).
| Categoria | Palavras-chave e Instruções |
|---|---|
| Tipo | Palavra-chave / Instrução |
| Versão do Python | all |
📝 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
🏷️ Palavras-chave / Instruções relacionadas
💡 Casos relacionados
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`.