IniziaInizia gratis

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

Visualizza il corso

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)
Modifica ed esegui il codice