ParamSpec e Concatenate no Python: Você PRECISA DISSO Para Closures! (Aula17)
Você já criou um decorador em Python e, de repente, percebeu que ele "engoliu" toda a tipagem da sua função original? O autocomplete para de funcionar, o type checker fica cego, e a segurança que você tinha se foi. Na Aula 17, vamos resolver esse problema de uma vez por todas com a "arma secreta" da tipagem: ParamSpec. Neste vídeo, vamos mergulhar fundo no Parameter Specification (PEP 612) e na nova sintaxe da PEP 695. Você vai aprender a criar decoradores que preservam 100% da assinatura da função decorada, parâmetros, nomes, tipos, argumentos posicionais e nomeados, como se fossem um "envelope transparente". Vamos do básico, entendendo como o ParamSpec captura uma assinatura, até o avançado, usando Concatenate para adicionar novos parâmetros e construindo um Decorator Factory do zero: um validador de tipos em runtime que funciona como um "mini Pydantic pobre" haha. Nesta aula da nossa playlist completa sobre Type Hints no Python, você vai aprender: - O problema fundamental dos decoradores que "apagam" os tipos. - O que é ParamSpec e como ele "fotografa" a assinatura de uma função. - A receita completa para criar um decorador que preserva os tipos usando ParamSpec e TypeVar. - Como usar Concatenate para criar decoradores que injetam argumentos em uma função. - O padrão "Decorator Factory": como criar decoradores que aceitam argumentos. - Um exemplo prático e real: um decorador @validate_types que checa os tipos dos argumentos em runtime. Se você quer parar de lutar com Callable[..., Any] e aprender a criar decoradores robustos e com tipagem perfeita, esta aula é o seu guia definitivo. E lembre-se: Type Hint é igual a Type Annotation (tipagem no Python). Este vídeo é parte de uma playlist, essa é a DÉCIMA SÉTIMA aula. Segue o link da playlist para acompanhar: https://www.youtube.com/playlist?list=PLbIBj8vQhvm04EuddtleOAoEmfU9vwQlN Link do repositório: https://github.com/luizomf/typehints_python Meus Cursos: https://www.otaviomiranda.com.br/ Newsletter: https://luizomf.substack.com/ Capítulos 00:00:00 - Introdução ao ParamSpec no Python 00:02:20 - Qual o problema Parameter Specification Resolve? 00:06:36 - ParamSpec, a solução dinâmica para parâmetros de funções 00:08:15 - ParamSpec, closures, decorators, args e kwargs 00:17:40 - ParamSpec com Concatenate para parâmetros adicionais 00:23:10 - Simulando o Pydantic com Decorator Factory e ParamSpec #Python #TypeHints #Decorators #DesignPatterns #PythonBrasil
Download
0 formatsNo download links available.