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
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)