Aggiungi tag alle tue funzioni
Fare tagging di qualcosa significa associare a quell’elemento una o più stringhe che fungono da etichette. Per esempio, spesso aggiungiamo tag a email o foto per poterle cercare in seguito. Hai deciso di scrivere un decorator che ti permetta di aggiungere tag alle tue funzioni con un elenco arbitrario di tag. Potresti usare questi tag per molte cose:
- Aggiungere informazioni su chi ha lavorato alla funzione, così chi la usa può sapere a chi chiedere in caso di problemi.
- Etichettare funzioni come "sperimentali" in modo che gli utenti sappiano che input e output potrebbero cambiare in futuro.
- Contrassegnare eventuali funzioni che prevedi di rimuovere in una futura versione del codice.
- E così via.
Questo esercizio fa parte del corso
Scrivere funzioni in Python
Istruzioni dell'esercizio
- Definisci un nuovo decorator, chiamato
decorator(), da restituire. - Assicurati che la funzione decorata mantenga i suoi metadati.
- Chiama la funzione che stai decorando e restituisci il risultato.
- Restituisci il nuovo decorator.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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)