Zacznij terazZacznij za darmo

Wyświetlanie zwracanego typu

Debugujesz pakiet, nad którym pracujesz razem ze znajomymi. Coś dziwnego dzieje się z danymi zwracanymi przez jedną z funkcji, ale nie wiesz jeszcze, która z nich sprawia kłopoty. Wiesz, że błędy często pojawiają się wtedy, gdy funkcja zwraca coś innego, niż się spodziewasz. Na przykład jeśli oczekujesz tablicy numpy, a funkcja zwraca listę, możesz napotkać nieoczekiwane zachowanie. Żeby sprawdzić, czy właśnie to jest przyczyną problemu, postanawiasz napisać dekorator print_return_type(), który będzie wyświetlał typ zmiennej zwracanej przez każde wywołanie dekorowanej funkcji.

To ćwiczenie jest częścią kursu

Pisanie funkcji w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz funkcję zagnieżdżoną wrapper(), która stanie się nową udekorowaną funkcją.
  • Wywołaj dekorowaną funkcję.
  • Zwróć nową udekorowaną funkcję.

Interaktywne ćwiczenie praktyczne

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

def print_return_type(func):
  # Define wrapper(), the decorated function
  ____ ____(____, ____):
    # Call the function being decorated
    result = ____(____, ____)
    print('{}() returned type {}'.format(
      func.__name__, type(result)
    ))
    return result
  # Return the decorated function
  return ____
  
@print_return_type
def foo(value):
  return value
  
print(foo(42))
print(foo([1, 2, 3]))
print(foo({'a': 42}))
Edytuj i uruchom kod