00 · Mecanismos de Python necessários para o curso
Mecanismos de Python necessários para o curso¶
Comece pelo despacho de operadores, decoradores e dataclasses para entender como uma expressão chega a um método da biblioteca.
Você já sabe ler funções, classes, condicionais e anotações de tipo simples.
- explicar com suas palavras a definição matemática de “Mecanismos de Python necessários para o curso”
- apontar como essa definição é representada em dados Python
- prever uma execução pequena a partir do código real
Em Python, `a + b` e `a == b` solicitam `__add__` e `__eq__` aos objetos. Um decorador recebe e substitui um objeto função durante a definição.
Uma dataclass congelada guarda valores matemáticos imutáveis. Internamente, um método com `@log` retorna resultado e mensagem adiada; o invólucro expõe apenas o resultado.
`+` → `__add__`; `==` → `__eq__`; `@log` → `inner`
Definição matemática
Definição matemática¶
Em Python, a + b e a == b solicitam __add__ e __eq__ aos objetos. Um decorador recebe e substitui um objeto função durante a definição.
Representação dos dados
Representação dos dados¶
Uma dataclass congelada guarda valores matemáticos imutáveis. Internamente, um método com @log retorna resultado e mensagem adiada; o invólucro expõe apenas o resultado.
Implementação em Python
Implementação em Python¶
inner chama o método original, separa (result, message), registra a mensagem quando necessário e retorna result; @wraps preserva os metadados.
A correspondência exata usada no curso:
Fluxo de execução
Fluxo de execução¶
O corpo do método termina antes que o invólucro receba a mensagem. Por isso chamadas recursivas internas são registradas primeiro.
Indique que código atenderá `structural_str()` e `+` e anote as duas linhas esperadas.
Primeiro escreva sua previsão; depois execute.
Verificação com testes
Verificação com testes¶
Os testes protegem o resultado, a assinatura pública e a avaliação adiada da mensagem.
Escopo e limites
Escopo e limites¶
Não repetimos sintaxe elementar; explicamos a metaprogramação essencial para ler esta biblioteca.