Question: Decorators Let's create a Python decorator function named performance. This decorator is designed to measure the execution time of other functions. Here's how it should
Decorators
Let's create a Python decorator function named performance. This decorator is designed to measure the execution time of other functions. Here's how it should work:
Input: The performance decorator accepts a single function as its argument.
Wrapped Function: The performance decorator should return a modified wrapped version of the input function that:
Records the start time before running the wrapped functionExecutes the wrapped function and stores its resturn valueRecords the end time after running the wrapped functionCalculates the elapsed time end time start time
Return Value: The wrapped function should return a tuple with:
The elapsed time in seconds taken to execute the wrapped functionThe wrapped function's return value
The time module has a function named perfcounter for measuring how long it takes to run something. For example:
import time starttime time.perfcounter # "Start" timer time.sleep # Wait one second endtime time.perfcounter # "Stop" timer elapsedtime endtime starttime # should be slightly more than printelapsedtime # approximately
Define a decorator named performance that wraps a function to return a tuple with the original return value of the function and the amount of time that it took. For example, we should be able to write:
@performance def adda b: return a b sumresult, timetaken add # sumresult timetaken ~
Hint: to create a decorator named fakeperformance that returns a tuple with the function call result and a string, we could do the following:
import functools def fakeperformancefunc: @functools.wrapsfunc def wrapperargskwargs: result funcargskwargs return result, "PUT THE ELAPSED TIME HERE AS A NUMBER" return wrapper
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
