|
Python - Gerando variáveis dinamicamente com exec() | |
| @CanalQb | ||
Introdução
Em Python, é possível criar variáveis dinamicamente durante a execução do programa, utilizando a função exec(). Isso pode ser útil em situações onde é necessário gerar múltiplas variáveis com nomes semelhantes, evitando a repetição manual de código.
Exemplo prático de criação dinâmica de variáveis
for i in range(1, 6):
exec(f"var{i} = {i}")
print(var1, var2, var3, var4, var5)
Este código gera cinco variáveis chamadas var1, var2, var3, var4 e var5, atribuindo a cada uma o valor do próprio índice i. Em seguida, o programa imprime os valores dessas variáveis.
Como funciona o comando exec()
A função exec() executa o código Python passado como string em tempo de execução. No exemplo acima, a string f"var{i} = {i}" gera expressões como var1 = 1, var2 = 2, etc., que são executadas criando variáveis no escopo atual.
Alternativas mais seguras: uso de dicionários
Apesar de exec() ser poderoso, seu uso pode ser arriscado, especialmente se o código gerado envolver dados externos, pois pode abrir brechas de segurança. Além disso, variáveis criadas dinamicamente podem dificultar a manutenção do código.
Uma abordagem mais recomendada é usar um dicionário para armazenar valores dinamicamente:
vars_dict = {}
for i in range(1, 6):
vars_dict[f"var{i}"] = i
print(vars_dict["var1"], vars_dict["var2"], vars_dict["var3"], vars_dict["var4"], vars_dict["var5"])
Isso mantém as variáveis organizadas e acessíveis, além de evitar riscos do exec().
Quando usar criação dinâmica de variáveis
Geração dinâmica de variáveis pode ser útil para:
- Scripts rápidos e experimentais.
- Gerenciamento de configurações que mudam em tempo de execução.
- Automação de tarefas onde nomes de variáveis precisam ser construídos programaticamente.
No entanto, para projetos maiores e manutenção a longo prazo, o uso de estruturas de dados como dicionários, listas e classes é mais adequado.
Conclusão
O Python permite flexibilidade para criar variáveis dinamicamente usando exec(), mas deve-se usar essa técnica com cautela. A melhor prática para armazenar dados relacionados dinamicamente é utilizar coleções como dicionários.
Recursos oficiais:

Comentários
Comente só assim vamos crescer juntos!