A verdade é que muitos devs ainda não sabem como o Python roda seu código… você sabe? 🤫
-
Leitura → Parsing
Quando você rodapython app.py
, o CPython (versão "oficial" do Python, escrita em C) lê todo o texto e verifica se a sintaxe faz sentido. Pense num corretor ortográfico que procura vírgulas fora do lugar. -
Tradução rápida → Bytecode
Em seguida, o CPython faz uma tradução intermediária chamada bytecode – é como transformar português em "portunhol" antes de chegar ao espanhol.
Arquivo gerado:__pycache__/app.cpython-312.pyc
Exemplo de bytecode:
0 LOAD_CONST 1 (10) # carrega o número 10 2 LOAD_CONST 2 (20) # carrega o número 20 4 BINARY_ADD # soma 10 + 20 6 RETURN_VALUE # devolve 30
-
Execução → Python Virtual Machine
Agora quem assume é a Python VM, um programa que interpreta o bytecode linha a linha, decidindo o que fazer em cada etapa (alocar memória, somar valores, coletar lixo, etc.). -
Cache esperto →
__pycache__
O bytecode é guardado na pasta__pycache__
. Da próxima vez que você rodar o mesmo arquivo, essa etapa de tradução é pulada e o script abre mais rápido.
Resumindo em uma frase
Python compila para bytecode e depois interpreta esse bytecode. Por isso dizemos que ele é ao mesmo tempo compilado e interpretado – combina produtividade com portabilidade.