Ir para o conteúdo

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.

Antes deste capítulo

Você já sabe ler funções, classes, condicionais e anotações de tipo simples.

Ao terminar, você poderá
  • 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
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

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

`+` → `__add__`; `==` → `__eq__`; `@log` → `inner`

Implementação e testes para ler junto com o capítulo

peano/utils.py · tests/test_utils.py

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:

`+` → `__add__`; `==` → `__eq__`; `@log` → `inner`

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.

Previsão antes de executar

Indique que código atenderá `structural_str()` e `+` e anote as duas linhas esperadas.

Experimento · Mecanismos de Python necessários para o curso Não executado
⌘ / Ctrl + Enter
Saída
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.

Qual afirmação descreve corretamente a implementação de “Mecanismos de Python necessários para o curso”?