Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Challenge: Logging and Timing Decorators | Mastering Python Decorators
Functional Programming Concepts in Python
Section 4. Chapter 8
single

single

bookChallenge: Logging and Timing Decorators

Swipe to show menu

Task

Swipe to start coding

  • Add @functools.wraps(func) above each wrapper.
  • In log_calls, complete log_message to print the function name, positional arguments, and keyword arguments.
  • In time_execution, before calling the function, store the start time with time.time().
  • After calling the function, store the end time.
  • Calculate and print the execution time.
  • Print both the log and timing messages.
  • Decorator order: log_calls outer, time_execution inner.

Expected result:

When you call multiply(5, 7), the output should look like:

Calling function 'multiply' with args=(5, 7), kwargs={}
Function 'multiply' executed in X.XXXXXX seconds
35

Where X.XXXXXX is the execution time formatted to six decimal places. The function should return 35.

Solution

Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 4. Chapter 8
single

single

Ask AI

expand

Ask AI

ChatGPT

Ask anything or try one of the suggested questions to begin our chat

some-alt