Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Escrevendo Decoradores Parametrizados | Dominando Iteradores e Decoradores em Python
Conceitos de Programação Funcional em Python

bookEscrevendo Decoradores Parametrizados

Deslize para mostrar o menu

Quando você deseja que seu decorador se comporte de maneira diferente dependendo de alguma entrada, é necessário criar um decorador parametrizado. Diferente dos decoradores comuns, que recebem apenas a função como argumento, os decoradores parametrizados aceitam seus próprios argumentos, permitindo controlar seu comportamento de forma dinâmica. Isso é especialmente útil quando se deseja reutilizar um decorador em várias situações com configurações diferentes.

Estrutura de um Decorador Parametrizado:

  1. A função externa recebe os argumentos do decorador;
  2. A função intermediária é o decorador propriamente dito, que recebe a função a ser decorada;
  3. A função interna envolve e controla a execução da função original.

Essa abordagem em camadas permite passar argumentos para o decorador, que ficam disponíveis quando a função decorada é chamada.

12345678910111213141516171819202122
# Outer function: accepts the decorator argument 'times' def repeat(times): # The actual decorator that takes the function to be decorated def decorator(func): # Inner function: wraps and controls the execution of 'func' def wrapper(*args, **kwargs): result = None # Call the original function 'times' times for _ in range(times): result = func(*args, **kwargs) return result # Return the wrapper to replace the original function return wrapper # Return the decorator function return decorator # Apply the repeat decorator @repeat(3) def say_hello(): print("Hello!") say_hello()
copy

1. Como um decorador parametrizado difere de um decorador comum?

2. Por que você pode querer passar argumentos para um decorador?

question mark

Como um decorador parametrizado difere de um decorador comum?

Selecione a resposta correta

question mark

Por que você pode querer passar argumentos para um decorador?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 4. Capítulo 3
some-alt