ComeçarComece gratuitamente

Marque suas funções

Marcar algo significa que você atribuiu a esse algo uma ou mais cadeias de caracteres que funcionam como rótulos. Por exemplo, geralmente marcamos e-mails ou fotos para que possamos procurá-los mais tarde. Você decidiu escrever um decorador que permitirá que você marque suas funções com uma lista arbitrária de tags. Você pode usar essas etiquetas para muitas coisas:

  • Adicionar informações sobre quem trabalhou na função, para que um usuário possa procurar a quem perguntar se tiver problemas ao usá-la.
  • Rotular as funções como "experimentais" para que os usuários saibam que os inputs e outputs podem mudar no futuro.
  • Marcar todas as funções que você planeja remover em uma versão futura do código.
  • Etc.

Este exercício faz parte do curso

Como escrever funções em Python

Ver Curso

Instruções de exercício

  • Defina um novo decorador, chamado decorator(), para retornar.
  • Certifique-se de que a função decorada mantenha seus metadados.
  • Chame a função que está sendo decorada e retorne o resultado.
  • Retorna o novo decorador.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

def tag(*tags):
  # Define a new decorator, named "decorator", to return
  def ____(____):
    # Ensure the decorated function keeps its metadata
    @____(____)
    def wrapper(*args, **kwargs):
      # Call the function being decorated and return the result
      return ____(____, ____)
    wrapper.tags = tags
    return wrapper
  # Return the new decorator
  return ____

@tag('test', 'this is a tag')
def foo():
  pass

print(foo.tags)
Editar e executar código