Menu
Coddy logo textTech

Decorators Usage

Lição 5 de 12 do curso Decoradores em Python da Coddy.

Em Python, um decorator é uma função que recebe outra função como entrada e estende o comportamento da função de entrada sem modificar explicitamente seu código. Decorators são uma maneira poderosa de modificar ou aprimorar o comportamento de funções de uma forma flexível e reutilizável.

Aqui está um exemplo de uma função decorator simples:

def my_decorator(func):
    def wrapper():
        print("Before the function is called.")
        func()
        print("After the function is called.")
    return wrapper

Neste exemplo, a função my_decorator recebe outra função func como entrada e retorna uma nova função chamada wrapper.

A função wrapper adiciona algum comportamento antes e depois da função func ser chamada.

challenge icon

Desafio

Fácil

Escreva uma função decoradora chamada debug que recebe uma função func como entrada e retorna uma nova função que imprime o nome de func e o valor de retorno de func toda vez que ela for chamada.

Para obter o nome de func, use func.__name__.

Aqui está um exemplo do uso do decorador debug:
 

def hello():
    return "Hello"

debug_hello = debug(hello)
debug_hello()

Neste exemplo, estamos usando o decorador debug para envolver a função hello e criar uma nova função chamada debug_hello. Quando chamamos debug_hello(), o decorador imprimirá:

Calling hello
hello returned: Hello

Você pode assumir que todas as funções passadas para debug são funções sem argumentos.

Experimente você mesmo

Todas as lições de Decoradores em Python

Pratique por conta própria: Compilador de Python online