0Pricing
Python For Kids · Aula

Decoradores

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

Decoradores é uma aula grátis de Python For Kids 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 Python For Kids, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python For Kids inclui 5 aulas no total.

Introdução aos decoradores

Os 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 às 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 decorador

Um decorador é 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

Quando você usa um decorador, o Python substitui a função original pela função wrapper retornada pelo decorador.

# 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

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

# 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

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

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

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 dos usuários).
  • Armazenar resultados em cache para melhorar o desempenho.

Decoradores Integrados do 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

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 em tarefas simples.
  • Esquecer de tratar os argumentos na função wrapper.

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 passar ao 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 Python For Kids, atualize para CoddyKit PRO. O curso de Python For Kids inclui 5 aulas no total.

O que vou aprender em “Decoradores”?

Aprenda a usar decoradores para modificar ou estender funções Você pratica Python For Kids 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 Python For Kids?

Nenhuma experiência prévia é necessária. Python For Kids 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 Python For Kids?

Sim. Cada aula de Python For Kids 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 Python For Kids