ComenzarEmpieza gratis

Etiqueta tus funciones

Etiquetar algo significa que le has dado una o varias cadenas que actúan como etiquetas. Por ejemplo, a menudo etiquetamos correos electrónicos o fotos para poder buscarlos más tarde. Has decidido escribir un decorador que te permita etiquetar tus funciones con una lista arbitraria de etiquetas. Puedes utilizar estas etiquetas para muchas cosas:

  • Añadir información sobre quién ha trabajado en la función, para que un usuario pueda buscar a quién preguntar si tiene problemas al utilizarla.
  • Etiquetar las funciones como "experimentales" para que los usuarios sepan que las entradas y salidas podrían cambiar en el futuro.
  • Marcando las funciones que piensas eliminar en una futura versión del código.
  • Etc.

Este ejercicio forma parte del curso

Escribir funciones en Python

Ver curso

Instrucciones de ejercicio

  • Define un nuevo decorador, llamado decorator(), para devolver.
  • Asegúrate de que la función decorada conserva sus metadatos.
  • Llama a la función decorada y devuelve el resultado.
  • Devuelve el nuevo decorador.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

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 y ejecutar código