exec() Executar bloco de código

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

exec() Executar bloco de código

exec() executa código Python (instruções ou bloco de código) contido em uma string, sem retornar valor.

CategoriaFunções internas
TipoFunção interna
Versão do Pythonall

📝 Sintaxe

exec(code[, globals[, locals]])

⚙️ Parâmetros

code ObrigatórioCode to execute: a string, bytes, or code object.
globals OpcionalThe global namespace dict.(Padrão:None)
locals OpcionalThe local namespace dict.(Padrão:None)

Retorno:None; statements in the code take effect in the caller.

💥 Exceções

▶ Exemplo

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

Saída:

6
y = 6
Mais estudos de caso em breve — aguarde.

❓ Perguntas frequentes

QApós exec('y = 1'), posso usar y diretamente?
ANo topo de um módulo, sim; mas dentro de uma função não — atribuições dentro de exec não são gravadas nas variáveis locais da função. A forma segura é exec(code, ns) e depois ler de ns.
Qexec() tem valor de retorno?
ANão, sempre retorna None; o resultado da execução é lido pelo dicionário do namespace, ex.: exec('y = x * 2', ns) e depois ns['y'].
QQuando usar exec() e quando eval()?
APara executar múltiplas declarações ou definir funções use exec; para obter o valor de uma única expressão use eval. O aviso de segurança é o mesmo — nenhum dos dois deve executar entrada não confiável.
QComo usar o argumento globals de exec?
Aexec(code, {'x': 3}) faz o código rodar apenas no namespace dado, sem poluir o ambiente externo — técnica comum para isolar o ambiente de execução.
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%