Curso gratuito

Curso de Python Avançado

Trilha Python: parte 3 de 3 Parte 1Parte 2Parte 3

Domine tipagem, async, metaclasses, performance e engenharia de software de verdade. O terceiro e último curso da trilha Python do ValorFinal, para quem já escreve código organizado (orientação a objetos, decoradores, geradores e testes) e quer pensar como engenheiro. Você vai dominar tipagem estática com type hints e mypy, dataclasses, programação funcional com functools e itertools, decoradores avançados, context managers, geradores e iteradores avançados, concorrência com threads, async e asyncio, orientação a objetos avançada, metaclasses e descritores, exceções e logging, testes com pytest, performance e profiling, empacotamento e boas práticas de projeto, e vai fechar com uma biblioteca completa, tipada e testada. Cada aula tem exemplos comentados, exercícios com correção automática no Playground e fontes oficiais da documentação em português. É o topo da trilha: sem promessa de emprego, só engenharia de verdade e código do jeito que profissionais escrevem.

Por Cesar Gargiulo, especialista em segurança da informação (GUARDIASEC). Revisão editorial da equipe ValorFinal.

Valim, o professor do Curso de Python Avançado
Preço
Grátis, sem cadastro para ler
Carga horária
12 horas
Conteúdo
16 módulos e 78 aulas
Nível
Avançado
Formato
Texto, vídeo e áudio
Prática
Exercício em cada aula, laboratório e missão prática
Exame final
20 questões, aprovação com 70%
Certificado
Verificável, para assinantes VIP

Atualizado em 25/09/2026

Em resumo

O Curso de Python Avançado fecha a trilha Python do ValorFinal, depois do Básico e do Intermediário, e continua gratuito e online. São 16 módulos e 78 aulas, perto de 12 horas no total, com vídeo em cada módulo e resumo em áudio nas aulas. O conteúdo cobre tipagem estática com type hints e mypy, dataclasses e Enum, programação funcional com functools e itertools, decoradores avançados, context managers, geradores avançados, concorrência com threads, async e asyncio, orientação a objetos avançada, metaclasses e descritores, logging, testes com pytest, profiling e empacotamento com pyproject.toml. A maior parte dos exercícios roda no Playground, com Python de verdade no navegador, e o projeto final é uma mini biblioteca tipada e testada. Qualquer pessoa lê as aulas sem cadastro; o certificado verificável é dos assinantes do ValorFinal VIP.

Para quem é este curso

Para quem já escreve Python organizado, com classes, decoradores, geradores e testes, e quer passar a projetar código que outras pessoas conseguem manter. Serve a quem terminou o Curso de Python Intermediário e a quem já usa Python no trabalho e quer decidir com critério quando vale tipar, usar threads ou async e organizar o projeto em pacote.

Antes de começar: Conhecer o conteúdo do Curso de Python Intermediário: orientação a objetos, decoradores, geradores, exceções e noções de teste. A maior parte das práticas roda no Playground do curso, e o mypy e o pytest são instalados com pip no computador, nos módulos em que o curso os usa.

O que você vai saber fazer

  • Anotar tipos com typing, Optional, generics e Protocol e verificar o código com mypy
  • Modelar dados com @dataclass, field, frozen, __post_init__ e Enum
  • Aplicar functools, lru_cache e itertools em código funcional
  • Escrever decoradores com argumentos, decoradores de classe e context managers com contextlib
  • Rodar tarefas concorrentes com threading, Lock, queue, ThreadPoolExecutor e asyncio
  • Usar @property, métodos dunder, MRO, descritores e metaclasses
  • Testar com pytest, fixtures, parametrize e mocks e achar gargalos com timeit e cProfile
  • Estruturar pacotes com pyproject.toml e seguir a PEP 8 com black e ruff
Velocidade

O que você leva neste curso

O conteúdo é todo gratuito. Veja o que cada plano libera antes de começar.

Conta grátis

R$ 0

  • ✓ Ler todas as aulas, sem login
  • ✓ Salvar o progresso só neste aparelho
  • ✓ Fazer as mini-provas de cada módulo
  • ✓ Conquistar e ver todas as medalhas
  • ✓ Compartilhar as conquistas no LinkedIn

♛ ValorFinal VIP

Certificado + extras

  • ✦ Tudo do plano grátis
  • ✦ Certificado de conclusão verificável em PDF com o seu nome
  • ✦ Open Badge do certificado (credencial aberta, padrão 1EdTech, para o LinkedIn e carteiras de medalhas)
  • ✦ Certificado ancorado no Bitcoin (OpenTimestamps), com comprovante verificável de forma independente
  • ✦ Anotações nas aulas, com grifar para anotar e sincronizadas entre aparelhos
  • ✦ Valim, o tutor de IA, dentro das aulas
  • ✦ Comunidade de dúvidas por aula, com a 1a resposta do Valim
  • ✦ Liga semanal de XP e Hall da Fama do curso
  • ✦ Progresso salvo na sua conta e sincronizado entre aparelhos (no mesmo computador, cada conta vê só o seu avanço)
  • ✦ Portal inteiro sem anúncios
♛ Conhecer o VIP

Conteúdo do curso

Capa do módulo 1: Boas-vindas ao Python Avançado

Módulo 1: Boas-vindas ao Python Avançado

3 aulas

O ponto de partida do topo da trilha: o que você já domina do Intermediário, o que muda quando o objetivo deixa de ser só organizar e passa a ser projetar com intenção. Uma revisão relâmpago da orientação a objetos e dos recursos avançados, e as ferramentas de engenharia que acompanham todo o curso.

Capa do módulo 2: Tipagem estática

Módulo 2: Tipagem estática

5 aulas

O primeiro pilar da engenharia em Python: declarar os tipos que o seu código espera e devolve. Você aprende os type hints, o módulo typing com Optional, Union, list, dict e Callable, o começo de generics com TypeVar, o Protocol para duck typing tipado e o verificador mypy que confere tudo antes de rodar.

Capa do módulo 3: Dataclasses e estruturas de dados

Módulo 3: Dataclasses e estruturas de dados

5 aulas

Como modelar dados com elegância em Python. O decorador @dataclass gera automaticamente o construtor, a representação e a comparação de uma classe de dados. Você aprende field com default_factory, a imutabilidade com frozen, a validação no __post_init__, o Enum para constantes nomeadas e como escolher entre dataclass, namedtuple, dicionário e tupla.

Capa do módulo 4: Programação funcional

Módulo 4: Programação funcional

5 aulas

Um estilo de programação que trata funções como valores e evita efeitos colaterais. Você aprende funções puras e imutabilidade, as ferramentas do functools (reduce, partial e o cache do lru_cache), os geradores infinitos e combinadores do itertools, e quando preferir map e filter às compreensões de lista.

Capa do módulo 5: Decoradores avançados

Módulo 5: Decoradores avançados

5 aulas

O decorador simples do Intermediário era só o começo. Aqui você aprende a preservar a identidade da função com functools.wraps, a construir decoradores que recebem argumentos, a decorar classes inteiras, a empilhar decoradores na ordem certa e a reconhecer os padrões que aparecem em qualquer código profissional: log, cronômetro, cache, validação e retry.

Capa do módulo 6: Context managers e o with

Módulo 6: Context managers e o with

5 aulas

O comando with que você usa para abrir arquivos guarda um mecanismo elegante por baixo: o context manager, que garante a limpeza de um recurso aconteça o que acontecer. Aqui você aprende o protocolo __enter__ e __exit__, o atalho com @contextlib.contextmanager e yield, e monta seus próprios gerenciadores para arquivos, locks, transações e cronômetros.

Capa do módulo 7: Geradores e iteradores avançados

Módulo 7: Geradores e iteradores avançados

5 aulas

Por trás de todo for existe o protocolo do iterador, e por trás dele está o poder dos geradores. Aqui você desce ao __iter__ e __next__, monta pipelines preguiçosos que processam dados enormes com pouca memória, delega com yield from, dompteia sequências infinitas com islice e conhece o send, o passo que faz a ponte para a programação assíncrona.

Capa do módulo 8: Concorrência com threads

Módulo 8: Concorrência com threads

5 aulas

O primeiro passo para lidar com muitas tarefas ao mesmo tempo. Você entende a diferença entre concorrência e paralelismo, o famoso GIL e o que ele implica, cria threads na prática, aprende a evitar a race condition com Lock, coordena produtor e consumidor com fila e usa o ThreadPoolExecutor para trabalho de I/O em lote.

Capa do módulo 9: Async e asyncio

Módulo 9: Async e asyncio

5 aulas

Outra forma de fazer muitas tarefas de I/O ao mesmo tempo, sem threads. Você entende por que a espera desperdiça tempo, escreve corrotinas com async def e await, roda o event loop com asyncio.run, dispara várias tarefas juntas com asyncio.gather e aprende quando async é melhor que threads e quando não é.

Capa do módulo 10: Orientação a objetos avançada

Módulo 10: Orientação a objetos avançada

5 aulas

O coração do projeto de software em Python. Você aprende a proteger atributos com @property e validação, a criar métodos de classe e estáticos, a fazer suas classes se integrarem à linguagem com os métodos dunder, a economizar memória com __slots__, a entender herança múltipla e a ordem de resolução de métodos, e a escolher entre composição e herança com critério.

Capa do módulo 11: Metaclasses e descritores

Módulo 11: Metaclasses e descritores

5 aulas

O andar de baixo da orientação a objetos em Python. Aqui você descobre que classes também são objetos, entende como type() fabrica classes, o que é uma metaclass e quando (raramente) vale usar, e como os descritores fazem @property funcionar por dentro. Poder de verdade, para usar com parcimônia.

Capa do módulo 12: Exceções, logging e robustez

Módulo 12: Exceções, logging e robustez

5 aulas

O módulo que separa um script que funciona de um programa em que se pode confiar. Você desenha uma hierarquia de exceções própria do seu domínio, encadeia erros sem perder a causa, usa o módulo logging no lugar do print e adota uma postura defensiva: validar cedo e falhar de forma clara.

Capa do módulo 13: Testes avançados

Módulo 13: Testes avançados

5 aulas

Testar de verdade, do jeito profissional. Você troca os asserts soltos pelo pytest, o framework de testes mais usado do Python, e aprende a organizar o teste com fixtures, cobrir muitos casos com parametrize, testar erros e dependências com pytest.raises e mocks, medir cobertura e adotar o ciclo TDD.

Capa do módulo 14: Performance e profiling

Módulo 14: Performance e profiling

5 aulas

Antes de acelerar qualquer código, você precisa saber onde ele é lento. Este módulo ensina a medir com timeit, a achar o gargalo real com cProfile e pstats, a raciocinar sobre complexidade sem matemática pesada, a escolher a estrutura de dados certa e a usar memoização e geradores. A regra é uma só: meça primeiro, otimize depois.

Capa do módulo 15: Empacotamento e boas práticas

Módulo 15: Empacotamento e boas práticas

5 aulas

Escrever funções que funcionam é só metade do trabalho de engenharia. A outra metade é organizar tudo num projeto navegável, com estrutura de pacote clara, imports bem resolvidos, estilo consistente e princípios de design que mantêm o código fácil de mudar. Este módulo reúne a estrutura de projetos, o pyproject.toml, PEP 8, SOLID e os padrões pythônicos de código limpo.

Capa do módulo 16: Projeto final: mini biblioteca de utilidades

Módulo 16: Projeto final: mini biblioteca de utilidades

5 aulas

Chegou a hora de juntar tudo. Neste módulo você constrói, passo a passo, uma mini biblioteca de utilidades tipada e testada, o pacote catalogo, para gerenciar produtos e preços. Cada aula acrescenta uma camada: dataclasses e Enum, decoradores próprios e context manager, exceções e logging, e por fim testes com pytest e empacotamento. É o código que prova, para você mesmo, que você projeta software.

Por causa do GIL, threads não servem para nada em Python?

Servem, mas para um tipo específico de tarefa. O GIL, a trava do interpretador CPython, deixa só uma thread executar bytecode Python por vez, então threads não aceleram cálculo pesado, como fatorar números enormes. Só que a thread solta o GIL enquanto espera entrada e saída, como baixar uma página, ler um arquivo ou consultar um banco de dados. Um programa que baixa cinquenta páginas passa quase todo o tempo esperando, e com threads essas esperas se sobrepõem. O módulo 8 do Curso de Python Avançado mostra essa divisão, usa o ProcessPoolExecutor para cálculo pesado e lembra que o GIL é do CPython, não da linguagem. O módulo 9 compara threads com async e asyncio.

Exercícios de Python avançado com respostas

As perguntas de verificação de todas as aulas, reunidas numa página só, com o gabarito comentado e o link para a aula que ensina cada assunto. Dá para revisar antes do exame final ou testar o que você já sabe antes de começar.

Abrir a lista de exercícios

Perguntas frequentes

O Curso de Python Avançado é gratuito?

Sim. As aulas, os exercícios do Playground, as mini-provas e o exame final do Curso de Python Avançado são gratuitos, e ninguém precisa se cadastrar para ler as aulas. O pagamento só entra para quem assina o ValorFinal VIP, que libera o certificado de conclusão verificável, o progresso sincronizado entre aparelhos, o tutor de IA dentro das aulas e o portal sem anúncios.

Preciso ter feito o Python Intermediário antes do avançado?

É o ideal. O Curso de Python Avançado parte de orientação a objetos, decoradores, geradores e exceções, que são o conteúdo do Curso de Python Intermediário, e o módulo 1 faz uma revisão relâmpago desses temas. Testes não são pré-requisito rígido, porque o módulo 13 retoma o assunto do começo com pytest. O nivelamento da página do curso também permite começar pela tipagem ou pelo async.

Preciso instalar mypy e pytest para começar o curso de Python avançado?

Não para começar. A maioria dos exercícios do Curso de Python Avançado roda no Playground, que executa Python de verdade no navegador, e os type hints funcionam ali porque o Python os aceita e ignora na execução. O mypy é instalado no módulo de tipagem e o pytest no módulo de testes, os dois com pip, do jeito que o Curso de Python Intermediário ensina.

Quanto tempo leva o curso de Python avançado?

O Curso de Python Avançado soma cerca de 12 horas de estudo entre as 78 aulas, as práticas no Playground, as mini-provas, a Missão prática e o exame final. O próprio curso sugere de 30 a 40 minutos por dia e avisa que alguns temas, como async e metaclasses, pedem releitura. O plano de estudo da página do curso transforma o seu tempo diário numa data prevista de conclusão.

O curso de Python avançado tem certificado?

Tem, para quem assina o ValorFinal VIP. A emissão do certificado do Curso de Python Avançado depende de aprovação nas mini-provas de todos os módulos e no exame final, que sorteia 20 questões do curso inteiro e exige 70% de acerto. O certificado leva o seu nome e um código de verificação público, vem com um Open Badge e recebe carimbo de data no Bitcoin pelo OpenTimestamps.

Type hints deixam o Python mais rápido?

Não. O Python aceita as anotações de tipo e as ignora quando o programa roda, então passar um texto onde a função espera list[float] não gera erro na execução. O ganho está em outro lugar: as anotações documentam o contrato da função para quem lê e para o editor, e o mypy confere os tipos sem executar nada, apontando a incoerência antes que ela vire bug. O Curso de Python Avançado ensina typing, Optional, Union, TypeVar, Protocol e o mypy na prática.

Quando usar async e quando usar threads em Python?

Async e threads servem para tarefas que esperam entrada e saída, e nenhum dos dois acelera cálculo puro, que pede processos. Threads encaixam mais fácil em código que já existe e em bibliotecas bloqueantes comuns. O async escala melhor para milhares de conexões, desde que existam bibliotecas assíncronas para o que você chama, porque um time.sleep dentro de uma corrotina trava o event loop inteiro. O módulo 9 do Curso de Python Avançado traz esse guia de decisão.

O que é uma metaclass em Python e quando usar?

Uma metaclass é uma subclasse de type, ou seja, uma fábrica de classes: ela roda quando a classe é criada, e não quando um objeto da classe é instanciado. No Curso de Python Avançado, a metaclass aparece como recurso de framework, e programas comuns quase nunca precisam de uma. Para registrar subclasses automaticamente, a primeira escolha ensinada é o __init_subclass__, mais simples e legível, e a metaclass fica para os casos que nenhuma alternativa mais leve resolve.

Qual a diferença entre o Python intermediário e o avançado?

O Curso de Python Intermediário ensina a escrever programas organizados, com classes, decoradores, geradores, arquivos JSON e CSV e testes. O Curso de Python Avançado parte daí para decisões de engenharia: tipos conferidos pelo mypy, dataclasses, concorrência com threads e asyncio, metaclasses e descritores, profiling, empacotamento e princípios SOLID. Em cada recurso, o avançado mostra quando usar e também quando não usar, que é o critério de quem mantém código em produção.

Qual é o projeto final do Curso de Python Avançado?

O projeto final do Curso de Python Avançado é o pacote catalogo, uma mini biblioteca de utilidades para gerenciar produtos e preços. Cada aula acrescenta uma camada: dataclasses e Enum para o domínio, decoradores próprios e um context manager, uma hierarquia de exceções com logging e, por último, testes com pytest e empacotamento. Na Missão prática, uma caixa de ferramentas tipada e testada é montada em missões, e cada peça é validada na própria página pela saída que produz.

O que estudar depois do Python avançado?

O ValorFinal sugere, como complemento, o Curso de Inteligência Artificial para Pequenos Negócios, sobre usar a IA no dia a dia com método. Quem programa também pode seguir para o Curso de Claude Code, que ensina a trabalhar com um agente de IA no terminal. Para aprofundar algoritmos e estruturas de dados, como grafos, árvores e programação dinâmica, os cursos intermediário e avançado de lógica de programação tratam do tema em pseudocódigo.

Guias para ler antes ou depois do curso

Outros cursos gratuitos da mesma área

CG

Quem fez este curso

Cesar Gargiulo

Especialista em Cloud Security e Segurança da Informação

Cesar Gargiulo é fundador do ValorFinal e especialista em segurança da informação. Reúne atuação técnica em ambientes AWS, proteção de aplicações e infraestrutura crítica com a experiência de tocar as próprias empresas. A trajetória passa por Nomad, Núclea e UOL EdTech, além dos projetos de segurança ofensiva e defensiva conduzidos na GUARDIASEC. É pós-graduado em Offensive Cyber Security pela FIAP e tem MBA em Governança Estratégica de TI pela FHO Uniararas.

Python avançado é o que separa o script que funciona do código que dura: tipagem, testes, concorrência e desempenho. Quem mantém código em produção aprendeu essas lições na prática, algumas doendo, e cada aula passa esse critério adiante: quando usar cada recurso e, tão importante quanto, quando não usar.

Escrito por Cesar Gargiulo, com revisão editorial da equipe ValorFinal Ver o perfil no LinkedIn