Funcional e idiomas avançados
TL;DR
Galho 4 da trilha Python: o “como por dentro” de generators e iterators, closures de verdade, decorators (fundamentos e com argumentos) e o kit
functools, fechando com context managers via generator. Fases Adepto→Magus; 9 notas. Assume os Galhos 1 (Core), 2 (Collections) e 3 (OO e Data Model) como pré-requisito.
Sobre este galho
Este galho pega três ferramentas que o resto da linguagem usa por baixo dos panos — iteração, funções de primeira classe e closures — e mostra como elas realmente funcionam. O Galho 2 já usou generator expressions e o Galho 3 já tocou no protocolo iterator via Data Model; aqui é o aprofundamento: como escrever seus próprios generators, como yield from delega pra subgenerators, como closures capturam variáveis (e a armadilha clássica do late binding em loops), e como decorators — que parecem mágica — são só açúcar sintático pra func = decorador(func). Fecha com functools (o kit de ferramentas funcionais da stdlib) e uma segunda forma de escrever context managers, via generator.
Audiência: quem já é confortável com Python básico e OO (Core + Collections + OO e Data Model) e quer entender os idiomas que tornam o código Python “pythônico” — os mesmos padrões usados por bibliotecas populares (Flask, pytest, Click) internamente.
Adepto
- [[01 - Iterators e o protocolo iter next|01 — Iterators e o protocolo
__iter__/__next__]] - [[02 - Generators — yield e generator functions|02 — Generators:
yielde generator functions]] - [[03 - yield from e delegação de generators|03 —
yield frome delegação de generators]] - 04 — Closures de verdade
- 05 — Decorators: fundamentos
Magus
- [[06 - Decorators com argumentos e functools.wraps|06 — Decorators com argumentos e
functools.wraps]] - [[07 - functools — ferramentas funcionais|07 —
functools: ferramentas funcionais]] - 08 — Context managers via generator
- 09 — Capstone: funcional e idiomas avançados — recapitula o galho.
Todas as notas
TABLE fase, status FROM "03-Dominios/Tecnologia/Python/Funcional e idiomas avançados" WHERE type = "concept" SORT file.name ASCVeja também
- Trilha Python (MOC central)
- Core — Galho 1
- Collections e Comprehensions — Galho 2
- OO e Data Model — Galho 3 (context managers manuais, ponte pra generator-based aqui)