Zacznij terazZacznij za darmo

Tagowanie funkcji

Tagowanie oznacza przypisanie czemuś jednego lub więcej ciągów znaków pełniących rolę etykiet. Na przykład często tagujemy e-maile lub zdjęcia, żeby móc je później łatwo odnaleźć. Postanowiłeś napisać dekorator, który pozwoli ci tagować funkcje dowolną listą tagów. Takie tagi można wykorzystać na wiele sposobów:

  • Dodawanie informacji o tym, kto pracował nad funkcją – żeby użytkownik wiedział, do kogo się zwrócić w razie problemów.
  • Oznaczanie funkcji jako „eksperymentalne", sygnalizując, że ich dane wejściowe i wyjściowe mogą się w przyszłości zmienić.
  • Zaznaczanie funkcji, które planujesz usunąć w kolejnej wersji kodu.
  • I wiele innych zastosowań.

To ćwiczenie jest częścią kursu

Pisanie funkcji w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj nowy dekorator o nazwie decorator(), który zostanie zwrócony.
  • Zadbaj o to, aby udekorowana funkcja zachowała swoje metadane.
  • Wywołaj dekorowaną funkcję i zwróć jej wynik.
  • Zwróć nowy dekorator.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod