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
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)