Začněte nyníZačněte zdarma

Označování funkcí štítky

Označení (tagging) znamená, že dané věci přiřadíš jeden nebo více řetězců jako štítky. Takto například označujeme e-maily nebo fotky, abychom je mohli snadno vyhledat. Teď napíšeš dekorátor, který ti umožní označit funkce libovolným počtem štítků. K čemu to může být užitečné?

  • Přidat informaci o tom, kdo na funkci pracoval, aby uživatelé věděli, na koho se obrátit v případě problémů.
  • Označit funkce jako „experimentální", aby bylo jasné, že vstupy a výstupy se mohou v budoucnu změnit.
  • Označit funkce, které plánuješ odebrat v některé z příštích verzí kódu.
  • A mnoho dalšího.

Toto cvičení je součástí kurzu

Writing Functions in Python

Zobrazit kurz

Pokyny k cvičení

  • Definuj nový dekorátor s názvem decorator(), který bude vrácen.
  • Zajisti, aby si dekorovaná funkce uchovala svá metadata.
  • Zavolej dekorovanou funkci a vrať výsledek.
  • Vrať nový dekorátor.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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)
Upravit a spustit kód