Zacznij terazZacznij za darmo

Zachowywanie docstringów podczas dekorowania funkcji

Znajomy zwrócił się do ciebie z problemem. Napisał kilka użytecznych dekoratorów i dodał je do funkcji w bibliotece open-source, nad którą pracuje. Podczas testów odkrył jednak, że wszystkie docstringi tajemniczo zniknęły z udekorowanych funkcji. Pokaż znajomemu, jak zachować docstringi i inne metadane podczas pisania dekoratorów.

To ćwiczenie jest częścią kursu

Pisanie funkcji w Pythonie

Zobacz kurs

Interaktywne ćwiczenie praktyczne

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

def add_hello(func):
  def wrapper(*args, **kwargs):
    print('Hello')
    return func(*args, **kwargs)
  return wrapper

# Decorate print_sum() with the add_hello() decorator
____
def print_sum(a, b):
  """Adds two numbers and prints the sum"""
  print(a + b)
  
print_sum(10, 20)
# Define the docstring
print_sum_docstring = print_sum.____
print(print_sum_docstring)
Edytuj i uruchom kod