0Pricing
Learn AI with Python · Aula

Decoradores

Aprenda a usar decoradores para modificar ou estender funções

Decoradores é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 1 de 5. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 5 aulas no total.

Introdução aos decoradores

Introdução aos decoradores

Decoradores são um recurso poderoso do Python que permite modificar o comportamento de funções ou métodos. Eles costumam ser usados para adicionar funcionalidades a funções sem modificar o código delas.

Nesta lição, você aprenderá o que são decoradores, como usá-los e como criar seus próprios decoradores.

Decoradores — ilustração 1

O que é um decorator?

O que é um decorator?

Um decorator é uma função que recebe outra função como entrada e retorna uma nova função com funcionalidades adicionais. Ele costuma ser usado com a sintaxe @decorator_name.

# Basic example of a decorator
def decorator(func):
    def wrapper():
        print("Before the function call")
        func()
        print("After the function call")
    return wrapper

@decorator
def say_hello():
    print("Hello!")

say_hello()

Como os decoradores funcionam

Como os decoradores funcionam

Quando você usa um decorator, o Python substitui a função original pela função envoltória retornada pelo decorator.

# How decorators work
def decorator(func):
    def wrapper():
        print("Wrapper called")
        func()
    return wrapper

@decorator
def greet():
    print("Greetings!")

print(greet.__name__)  # Outputs: wrapper
greet()

Usando decoradores com argumentos

Usando decoradores com argumentos

Os decoradores podem funcionar com funções que recebem argumentos usando *args e **kwargs na função envoltória:

# Decorator for functions with arguments
def decorator(func):
    def wrapper(*args, **kwargs):
        print(f"Arguments: {args}, {kwargs}")
        return func(*args, **kwargs)
    return wrapper

@decorator
def add(a, b):
    return a + b

print(add(3, 5))

Encadeando vários decoradores

Encadeando vários decoradores

Você pode usar vários decoradores em uma única função. Eles são aplicados na ordem em que aparecem, de cima para baixo:

# Chaining multiple decorators
def decorator1(func):
    def wrapper():
        print("Decorator 1")
        func()
    return wrapper

def decorator2(func):
    def wrapper():
        print("Decorator 2")
        func()
    return wrapper

@decorator1
@decorator2
def greet():
    print("Hello!")

greet()

Criando decoradores parametrizados

Criando decoradores parametrizados

Os decoradores parametrizados recebem argumentos e permitem uma funcionalidade mais flexível:

# Parameterized decorator
def repeat(times):
    def decorator(func):
        def wrapper(*args, **kwargs):
            for _ in range(times):
                func(*args, **kwargs)
        return wrapper
    return decorator

@repeat(3)
def say_hello():
    print("Hello!")

say_hello()

Casos de uso comuns para decoradores

Casos de uso comuns para decoradores

Os decoradores são usados com frequência para:

  • Registrar chamadas de funções e seus argumentos.
  • Medir o tempo de execução das funções.
  • Controlar o acesso, por exemplo, verificando as permissões do usuário.
  • Armazenar resultados em cache para melhorar o desempenho.

Decoradores integrados no Python

Decoradores integrados no Python

O Python fornece alguns decoradores integrados, incluindo:

  • @staticmethod: Define um método estático.
  • @classmethod: Define um método de classe.
  • @property: Define um método de propriedade.

Erros comuns com decoradores

Erros comuns com decoradores

Aqui estão alguns erros que você deve evitar:

  • Não preservar o nome e a docstring da função original (use functools.wraps).
  • Usar decoradores desnecessariamente para tarefas simples.
  • Esquecer de tratar os argumentos na função envoltória.

O que aprendemos

O que aprendemos?

Nesta lição, você aprendeu:

  • O que são decoradores e como funcionam em Python.
  • Como criar e usar decoradores básicos, parametrizados e encadeados.
  • Casos de uso comuns e decoradores integrados do Python.

Parabéns! Vamos para o próximo tópico.

Decoradores — ilustração 11

Perguntas Frequentes

A aula “Decoradores” é grátis?

Sim — o texto completo de “Decoradores” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 5 aulas no total.

O que vou aprender em “Decoradores”?

Aprenda a usar decoradores para modificar ou estender funções Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 5.

Quanto tempo leva a aula “Decoradores”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Decoradores
  2. Geradores
  3. Gerenciadores de contexto (instruções with)
  4. Compreensões (de listas, conjuntos e dicionários)
  5. Iteradores e iteráveis
← Voltar para Learn AI with Python