Aan de slagGa gratis aan de slag

Een decorator definiëren

Je buddy werkt aan een decorator die een "before"-bericht print vóórdat de gedecoreerde functie wordt aangeroepen en een "after"-bericht ná de aanroep. Ze weten niet meer precies hoe het omhullen (wrappen) van de gedecoreerde functie werkt. Help door hun print_before_and_after()-decorator af te maken.

Deze oefening maakt deel uit van de cursus

Functies schrijven in Python

Cursus bekijken

Oefeninstructies

  • Roep de te decoreren functie aan en geef de positionele argumenten *args door.
  • Retourneer de nieuwe gedecoreerde functie.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

def print_before_and_after(func):
  def wrapper(*args):
    print('Before {}'.format(func.__name__))
    # Call the function being decorated with *args
    ____(*args)
    print('After {}'.format(func.__name__))
  # Return the nested function
  return ____

@print_before_and_after
def multiply(a, b):
  print(a * b)

multiply(5, 10)
Code bewerken en uitvoeren