Funktionen taggen
Etwas zu taggen bedeutet, diesem Objekt ein oder mehrere Strings als Labels zuzuweisen. Wir taggen zum Beispiel oft E-Mails oder Fotos, damit wir sie später finden können. Du hast dich entschieden, einen Decorator zu schreiben, mit dem du deine Funktionen mit einer beliebigen Liste von Tags versehen kannst. Diese Tags kannst du für vieles nutzen:
- Hinzufügen von Informationen darüber, wer an der Funktion gearbeitet hat, damit Nutzer nachschauen können, wen sie bei Problemen fragen.
- Funktionen als „experimentell“ kennzeichnen, damit Nutzer wissen, dass sich Eingaben und Ausgaben in Zukunft ändern könnten.
- Funktionen markieren, die du in einer zukünftigen Version des Codes entfernen willst.
- usw.
Diese Übung ist Teil des Kurses
Funktionen in Python schreiben
Anleitung zur Übung
- Definiere einen neuen Decorator namens
decorator(), der zurückgegeben werden soll. - Stelle sicher, dass die dekorierte Funktion ihre Metadaten behält.
- Rufe die zu dekorierende Funktion auf und gib das Ergebnis zurück.
- Gib den neuen Decorator zurück.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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)