Pular para conteúdo

🛠 Python Disassembler

Essa dica é para você que gosta de escovar bits e entender o que o python faz por baixo dos panos.

Python possui um módulo que 'disassembla' seu código, ou seja, você pode analisar o bytecode do seu código!

⚗️ Teste

Vamos testar, para isso precisamos importar o módulo chamado dis e utilizar conforme o exemplo abaixo:

# >>>$ from dis import dis
# >>>$ 
# >>>$ 
# >>>$ def add_two(number: int) -> int:
# ...$     return number + 2
# >>>$ 
# >>>$ dis(add_two)

  2           0 LOAD_FAST                0 (number)
              2 LOAD_CONST               1 (2)
              4 BINARY_ADD
              6 RETURN_VALUE

🔎 Explicando o resultado

dis_example.py
from dis import dis # (1)


def add_two(number: int) -> int: # (2)
    return number + 2


dis(add_two) # (3)

# Result
#  2           0 LOAD_FAST                0 (number) (4)
#              2 LOAD_CONST               1 (.2.) (5)
#              4 BINARY_ADD (6)
#              6 RETURN_VALUE (7)
  1. Importando a biblioteca dis.
  2. Declara uma função que adiciona dois a um número.
  3. Chamando a função dis para disassemblar o código e nos mostrar o bytecode.
  4. Envia uma referência para o local co_varnames[var_num] na pilha. Doc Link
  5. Coloca co_consts[consti] na pilha. Doc Link
  6. Implementa TOS = TOS1 + TOS. Doc Link
  7. Retorna com TOS para quem chamou a função. Doc Link

📖 Documentação Oficial

Comentários