1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Writing Functions in Python

Connected

cvičení

Měření režijních nákladů dekorátoru

Tvůj šéf napsal dekorátor check_everything(), který považuje za skvělý, a trvá na tom, abys ho používal/a na svých funkcích. Všiml/a sis ale, že po jeho aplikaci běží funkce výrazně pomaleji. Potřebuješ šéfa přesvědčit, že dekorátor přidává příliš velkou výpočetní zátěž. Proto změříš, jak dlouho trvá běh dekorované funkce, a porovnáš to s tím, jak dlouho by trvalo spuštění nedekorované verze. Tady je dotyčný dekorátor:

def check_everything(func):
  @wraps(func)
  def wrapper(*args, **kwargs):
    check_inputs(*args, **kwargs)
    result = func(*args, **kwargs)
    check_outputs(result)
    return result
  return wrapper

Pokyny

100 XP
  • Místo dekorované verze zavolej původní funkci – využij k tomu atribut, který příkaz wraps() v šéfově dekorátoru přidal k dekorované funkci.