ÎncepețiÎncepe gratuit

Etichetează-ți funcțiile

A eticheta ceva înseamnă a-i atribui unul sau mai multe șiruri de caractere care funcționează ca etichete descriptive. De exemplu, etichetăm adesea emailurile sau fotografiile pentru a le putea găsi mai ușor ulterior. Ai decis să scrii un decorator care să îți permită să etichetezi funcțiile cu o listă arbitrară de etichete. Poți folosi aceste etichete în multe moduri:

  • Adăugarea de informații despre cine a lucrat la funcție, astfel încât un utilizator să știe pe cine să contacteze dacă întâmpină dificultăți.
  • Marcarea funcțiilor ca „experimentale", pentru ca utilizatorii să știe că intrările și ieșirile s-ar putea modifica în viitor.
  • Semnalarea funcțiilor pe care plănuiești să le elimini într-o versiune viitoare a codului.
  • Și altele.

Acest exercițiu face parte din cursul

Scrierea funcțiilor în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește un nou decorator, numit decorator(), care să fie returnat.
  • Asigură-te că funcția decorată își păstrează metadatele.
  • Apelează funcția care este decorată și returnează rezultatul.
  • Returnează noul decorator.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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)
Editează și rulează codul